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()
有关解决此问题的任何帮助/指导吗?
答案 0 :(得分:1)
您是否在代码中使用了ugettext()
?将其更改为ugettext_lazy().
引用https://github.com/paetztm/recycler_view_headers:
AppRegistryNotReady:导入应用程序配置或模型模块触发依赖于应用程序注册表的代码时会发生这种情况。
例如,ugettext()使用app注册表查找翻译 应用程序中的目录。要在导入时翻译,您需要 ugettext_lazy()代替。 (使用ugettext()将是一个bug,因为 翻译将在导入时发生,而不是在每次请求时发生 取决于主动语言。)
答案 1 :(得分:0)
您需要使用settings.py
中的lazy translation以及任何可能在Django被提升时导入的文件(views.py
,models.py
)。