2017-10-17 2 views
0

Ich wollte das erste Modell zu einer bereits funktionierenden App hinzufügen, und jetzt kann ich es nicht starten, weil es immer AppRegistryNotReady gibt. Dies passiert nur, wenn mein Modell MailLog ein Kind von models.Model ist.Django AppRegistryNotReady beim Definieren eines Modells

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)+")" 

Der Fehler tritt auf, egal was in der Klasse ist, auch wenn es nur ein pass ist. Ich kann jedoch meine Modelle in admin.py importieren und stürzt ab, wenn ich aus einer Datei namens core.py importiere. Diese Datei sieht wie folgt aus:.

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

Die Zurückverfolgungs

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

Zeigen Sie den vollständigen Code des Modells, und die vollständige Traceback erhalten Sie. –

+0

Als beiseite, 'von .admin Import MailLog' in der Traceback sieht seltsam aus - Sie sollten Import direkt aus '.models'. – Alasdair

Antwort

1

wie folgt aussieht sollten Sie nicht Django Modelle in Ihrer App __init__ (oder was sie von core durch den Import importiert werden werden Import Wenn Sie Verwenden Sie eine leere __init__.py

+0

Vielen Dank! – nielsrolf

Verwandte Themen