2016-09-06 13 views
1

私がしたいこと:私のビューでは、unittestでテストを実行しようとしています。エラー:django.core.exceptions.AppRegistryNotReady:Pythonの翻訳インフラストラクチャ...

アウトカム

.... ENV/libに/ python2.7 /のsite-packages /ジャンゴ/ utilsの/翻訳/ trans_real.py」、行189:私は次のエラーを取得していますin _fetch " django.core.exceptions.AppRegistryNotReadyの前に翻訳インフラストラクチャを初期化できません:アプリケーションレジストリが準備される前に翻訳インフラストラクチャを初期化できません。インポート時に非遅延のgettext呼び出しを行わないことを確認してください時間。

使用するインポート:

import unittest 
from django.test import Client 
from django.core.wsgi import get_wsgi_application 
import os 
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings") 
import sys 
sys.path.append('../../mysite/') 
from mysite.settings import * 
from views import * 
application = get_wsgi_application() 

あなたは私がいない成功を収めて、この答えをしようとした見ることができるように:appregistrynotready-the-translation-infrastructure-cannot-be-initialized

私もこの1を踏襲:私はugettext & ugettext_lazyで見つけupgrading-to-django-1-7-getting-appregistrynotready-for-translation-infrastruct

輸入:

from django.utils.translation import ungettext, ugettext_lazy as _ 
from django.utils.translation import ungettext, ugettext, ugettext_lazy as _ 
from django.utils.translation import ugettext_lazy as _ 

に変更しました

from django.utils.translation import ugettext_lazy as _ 
しかし、それはこれで問題がある可能性があります場合、私は思っていた

return ugettext('%(number)d %(type)s') % {'number': delta.seconds, 100 'type': count(delta.seconds)} 

私はugettextを見つけ

いくつかのコードのいずれかを動作しませんでした。

私は、認証/ models.pyからこの行を削除した場合、私はそれが働いた:

last_pass_change = models.DateTimeField(_("last_pass_change"), default=datetime.datetime.now()) 
last_failed_login = models.DateTimeField(_("last_failed_login"), default=datetime.datetime.now()) 

しかし、私はそれを

+0

なぜあなたはまたのために[ダミークライアントをご提供し、[既存のテストインフラストラクチャ](https://docs.djangoproject.com/en/1.10/topics/testing/overview/)を使用していませんテストビュー](https://docs.djangoproject.com/ja/1.10/topics/testing/tools/#test-client)? – dhke

+0

'default = datetime.datetime.now()' <=これは、 'models.py'がロードされた日時にデフォルト値を設定します。おそらく大括弧を省略したかったでしょう。また、[djangoのタイムゾーンと日付時刻について](https://docs.djangoproject.com/ja/1.10/topics/i18n/timezones/#naive-and-aware-datetime-objects)を読むこともできます。 – dhke

答えて

1

を修正する方法がわからない最後に、私は変更にそれを解決:

from django.utils.translation import gettext as _ 

へ:

from django.utils.translation import ugettext_lazy as _ 
0

ビューと設定からインポートする前にWSGIアプリケーションを初期化します。

application = get_wsgi_application()  
from mysite.settings import * 
from views import * 
関連する問題