Ошибка реестра приложений Django 1.8
Версия Python: 2.7.10 Версия Django: 1.8 Среда: Виртуальная среда
Проблема: Всякий раз, когда я пытался запустить./manage.py runserver или shell, я получаю эту ошибку
"The translation infrastructure cannot be initialized before the "
django.core.exceptions.AppRegistryNotReady: The translation infrastructure
cannot be initialized before the apps registry is ready. Check that you
don't make non-lazy gettext calls at import time."
Основываясь на некоторых ответах на некоторые связанные посты, я также проверил свой файл wsgi, и он обновил способ ссылки на приложение wsgi. Вот как выглядит мой файл wsgi:
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "instant_reports.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
Любая помощь / руководство по решению этой проблемы?
2 ответа
Ты использовал ugettext()
в вашем коде? Измените это на ugettext_lazy().
Цитирование официальной документации Django:
AppRegistryNotReady: это происходит, когда импорт конфигурации приложения или модуля моделей запускает код, который зависит от реестра приложения.
Например, ugettext() использует реестр приложений для поиска каталогов переводов в приложениях. Чтобы перевести во время импорта, вам нужно использовать ugettext_lazy(). (Использование ugettext () было бы ошибкой, потому что перевод происходил бы во время импорта, а не при каждом запросе в зависимости от активного языка.)
Вы должны использовать ленивый перевод в вашем settings.py
и любой файл (views.py
, models.py
), которые могут быть импортированы, пока Django загружен.