2017-06-22 51 views
0

Python版本:2.7.10 Django的版本:1.8 環境:虛擬環境應用程序的註冊表錯誤的Django 1.8

問題:每當我試圖運行./manage.py的runserver或殼我得到這個錯誤

"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

所以,它告訴你,你有'gettext的電話'在進口時正在執行。你可以展示他們嗎? –

+0

我實際上在多個地方調用了這個函數 - 是否有需要查看的特定文件? –

回答

0

您需要同時Django是boostrapped可能得到導入了settings.py任何文件(views.pymodels.py)使用lazy translation

+0

是的。我已經在這些文件中使用 「from django.utils.translation import ugettext_lazy as _」將它們導入到這些文件中,但仍然出現此錯誤 –

1

你在代碼中使用了ugettext()嗎?將其更改爲ugettext_lazy().報價Django official documentation

AppRegistryNotReady:出現這種情況導入應用程序配置或模型模塊觸發依賴於應用程序的註冊表的代碼時。

例如,ugettext()使用應用程序註冊表在應用程序中查找翻譯 目錄。要在導入時翻譯,您需要使用 ugettext_lazy()。 (使用ugettext()將是一個錯誤,因爲 翻譯將在進口時有發生,而不是依賴於活動語言的每個請求 。)

+0

沒有我在整個電路板上使用ugettext_lazy()。這裏是它被導入的片段「從django.utils.translation import ugettext_lazy as _」 –