私がしたいこと:私のビューでは、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())
しかし、私はそれを
なぜあなたはまたのために[ダミークライアントをご提供し、[既存のテストインフラストラクチャ](https://docs.djangoproject.com/en/1.10/topics/testing/overview/)を使用していませんテストビュー](https://docs.djangoproject.com/ja/1.10/topics/testing/tools/#test-client)? – dhke
'default = datetime.datetime.now()' <=これは、 'models.py'がロードされた日時にデフォルト値を設定します。おそらく大括弧を省略したかったでしょう。また、[djangoのタイムゾーンと日付時刻について](https://docs.djangoproject.com/ja/1.10/topics/i18n/timezones/#naive-and-aware-datetime-objects)を読むこともできます。 – dhke