2017-10-17 4 views
0

私はすでに動作しているアプリケーションに最初のモデルを追加したいと思っていましたが、今はAppRegistryNotReadyを与えるので、起動できません。私のモデルMailLogmodels.Modelの子である場合にのみこれが起こります。モデルを定義するときにDjango AppRegistryNotReady

from __future__ import unicode_literals 
from django.db import models 

#class MailLog(models.Model): # like this, it crashes 
class MailLog(): # like this, it works 
    # Field definitions 
    recipient = models.EmailField() 
    created = models.DateTimeField(auto_now_add=True) 
    template = models.CharField(max_length=500) 
    error = models.TextField(null=True) 

    def __str__(self): 
     return self.recipient+" "+self.template+"("+str(self.created)+")" 

エラーは、passがある場合でも、関係なく、クラスの内部で何が行われません。しかし、私はadmin.pyでモデルをインポートすることができ、core.pyというファイルからインポートするとクラッシュします。このファイルには、次のようになります。

import boto3 
from botocore.exceptions import ClientError 
from django.template import loader 
from django.conf import settings 
from .templates import * 
from .models import MailLog 

トレースバックは、あなたがあなたのアプリケーションの__init__でDjangoのモデルをインポートする(またはそれらをcoreからインポートすることにより、インポートさせるべきではない、あなたなら、この

Traceback (most recent call last): 
    File "manage.py", line 22, in <module> 
    execute_from_command_line(sys.argv) 
    File "/home/niels/anaconda3/envs/app/lib/python2.7/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line 
    utility.execute() 
    File "/home/niels/anaconda3/envs/app/lib/python2.7/site-packages/django/core/management/__init__.py", line 316, in execute 
    settings.INSTALLED_APPS 
    File "/home/niels/anaconda3/envs/app/lib/python2.7/site-packages/django/conf/__init__.py", line 53, in __getattr__ 
    self._setup(name) 
    File "/home/niels/anaconda3/envs/app/lib/python2.7/site-packages/django/conf/__init__.py", line 41, in _setup 
    self._wrapped = Settings(settings_module) 
    File "/home/niels/anaconda3/envs/app/lib/python2.7/site-packages/django/conf/__init__.py", line 97, in __init__ 
    mod = importlib.import_module(self.SETTINGS_MODULE) 
    File "/home/niels/anaconda3/envs/app/lib/python2.7/importlib/__init__.py", line 37, in import_module 
    __import__(name) 
    File "/home/niels/Dokumente/jobapp/deploy/backend/settings.py", line 255, in <module> 
    django.setup() 
    File "/home/niels/anaconda3/envs/app/lib/python2.7/site-packages/django/__init__.py", line 27, in setup 
    apps.populate(settings.INSTALLED_APPS) 
    File "/home/niels/anaconda3/envs/app/lib/python2.7/site-packages/django/apps/registry.py", line 85, in populate 
    app_config = AppConfig.create(entry) 
    File "/home/niels/anaconda3/envs/app/lib/python2.7/site-packages/django/apps/config.py", line 90, in create 
    module = import_module(entry) 
    File "/home/niels/anaconda3/envs/app/lib/python2.7/importlib/__init__.py", line 37, in import_module 
    __import__(name) 
    File "/home/niels/Dokumente/jobapp/deploy/ses_mail/__init__.py", line 1, in <module> 
    from .core import send 
    File "/home/niels/Dokumente/jobapp/deploy/ses_mail/core.py", line 7, in <module> 
    from .admin import MailLog 
    File "/home/niels/Dokumente/jobapp/deploy/ses_mail/admin.py", line 2, in <module> 
    from .models import * 
    File "/home/niels/Dokumente/jobapp/deploy/ses_mail/models.py", line 6, in <module> 
    class MailLog(models.Model): 
    File "/home/niels/anaconda3/envs/app/lib/python2.7/site-packages/django/db/models/base.py", line 105, in __new__ 
    app_config = apps.get_containing_app_config(module) 
    File "/home/niels/anaconda3/envs/app/lib/python2.7/site-packages/django/apps/registry.py", line 237, in get_containing_app_config 
    self.check_apps_ready() 
    File "/home/niels/anaconda3/envs/app/lib/python2.7/site-packages/django/apps/registry.py", line 124, in check_apps_ready 
    raise AppRegistryNotReady("Apps aren't loaded yet.") 
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet. 
+0

モデルの完全なコードとあなたが得る完全なトレースバックを表示 –

+0

トレースバックの 'from.admin import MailLog'は奇妙に見えます。 '.models'から直接インポートします。 – Alasdair

答えて

1

のように見えます。空を使用する__init__.py

+0

ありがとう! – nielsrolf

関連する問題