Da ich gleiches abstraktes Modell in jedem App-Modell hatte ich Redundanz zu vermeiden, habe ich mein gemeinsames abstraktes Modell nur in neue App zog ich erstellt und nannte es gemeinsamWarum bekomme ich django.core.exceptions.AppRegistryNotReady: Modelle sind noch nicht geladen?
Gemeinsamer Models.py ist jetzt
from django.db import models
LANGUAGE_CHOICES = (
('E','ENGLISH'),
('F','FRENCH'),
('S','SPANISH'),
)
class CommonInfo(models.Model):
created = models.DateTimeField("creation date", auto_now_add=True)
modified = models.DateTimeField("modification date", auto_now=True)
description = models.TextField()
class Meta:
abstract = True
dann habe ich meine gemeinsame App
Und schließlich meine apps, settings.py in alles, was ich hinzugefügt
from common.models import CommonInfo
from common.models import LANGUAGE_CHOICES
Nach dem lokalen Server läuft dies ist der Fehler im Terminal (volle Linie) Ich bin immer
Traceback (jüngste Aufforderung zuletzt): File "manage.py", Zeile 10, in execute_from_command_line (sys .argv) Datei "C: \ Benutzer \ Boris \ dev \ miete \ virrentout \ lib \ site-packages \ django \ core \ m anagement__init__.py", Zeile 338, in execute_from_command_line utility.execute() Datei "C: \ Benutzer \ Boris \ dev \ rentout \ ventrentout \ lib \ site-packages \ django \ core \ m anagement__init__.py ", Zeile 312, in Ausführung django.setup() Datei" C: \ Benutzer \ Boris \ dev \ rentout \ virtrentout \ lib \ site-packages \ django__init .py ", Zeile 18, im Setup apps.populate (settings.INSTALLED_APPS) Datei" C: \ Benutzer \ Boris \ dev \ rentout \ virtrentout \ lib \ site-packages \ django \ apps \ r egistry.py Zeileapp_config.import_models (all_models) Datei "C: \ Benutzer \ Boris \ dev \ rentout \ virtrentout \ lib \ site-packages \ django \ apps \ c onfig.py", Zeile 198, in import_models self.models_module = import_module (models_module_name) Datei "C: \ python27 \ Lib \ importlib__init Py", Zeile 37, in import_module import (name) Datei „C: \ Benutzer \ Boris \ dev \ rentout \ rentout \ lease \ models.py ", Zeile 94, in Klasse LeaseFilter (django_filters.FilterSet): Datei" C: \ Users \ Boris \ dev \ rentout \ vitrentout \ lib \ site-packages \ django_filter s \ filterset.py ", Zeile 181, in neu filters = new_class.filters_for_model (opts.model, opts) Datei" C: \ Users \ Boris \ dev \ rentout \ vitrentout \ lib \ site-packages \ django_filter s \ filterset.py ", Zeile 456, in filters_for_model cls.filter_for_reverse_field Datei" C: \ Benutzer \ Boris \ dev \ rentout \ virtuentout \ lib \ site-packages \ django_filter s \ filterset.py ", Zeile 104, in filters_for_model filter_ = filter_for_field (Feld, f) Datei" C: \ Benutzer \ Boris \ dev \ rentout \ virtuentout \ lib \ site-packages \ django_filter s \ filterset.py " , Zeile 461, in filter_for_field f, lookup_type = resolve_field (f, lookup_expr) Datei "C: \ Benutzer \ Boris \ dev \ rentout \ virtrentout \ lib \ site-pack Age \ django_filter s \ utils.py ", Zeile 104, in resolve_field Abfrage = model_field.model._default_manager.all(). Abfrage-Datei" C: \ Benutzer \ Boris \ dev \ rentout \ virtuentout \ lib \ Site-Pakete \ django \ db \ mod els \ manager.py ", Zeile 228, insgesamt return self.get_queryset() Datei" C: \ Benutzer \ Boris \ dev \ rentout \ rentout \ lease \ models.py ", Zeile 15 ., in get_q return Super (NotTerminatedActiveManager, Selbst-) .get_queryset() ueryset Filter (is_term inated = false, is_active = True)
Datei „C: \ Benutzer \ Boris \ dev \ rentout \ virtrentout \ lib \ site -Pakete \ django \ db \ mod els \ Abfrage.py ", Zeile 679, im Filter return self._filter_or_exclude (Falsch, * args, ** kwargs) Datei" C: \ Benutzer \ Boris \ dev \ rentout \ ventrentout \ lib \ site-packages \ django \ db \ mod els \ query.py ", Zeile 697, in _filter_or_exclude clone.query.add_q (Q (* args, ** kwargs)) Datei" C: \ Benutzer \ Boris \ dev \ rentout \ vitrentout \ lib \ site-packages \ django \ db \ mod els \ sql \ query.py ", Zeile 1301, in add_q Klausel, require_inner = self._add_q (where_part, self.used_aliases) Datei " C: \ Benutzer \ Boris \ dev \ rentout \ virtrentout \ lib \ site-packages \ django \ db \ mod els \ sql \ query.py ", Zeile 1328, in _add_q current_negated = aktuelle_negative, connector = connector, allow_joins = allow_join s) Datei " C: \ Users \ Boris \ dev \ rentout \ ventrentout \ lib \ Site-Pakete \ django \ db \ mod els \ sql \ query.py ", Zeile 1144, in build_filter Suchvorgänge, Teile, reffed_aggregate = self.solve_lookup_type (arg) Datei " C: \ Benutzer \ Boris \ dev \ rentout \ vitrentout \ lib \ site-packages \ django \ db \ mod els \ sql \ query.py ", Zeile 1030, in solve_lookup_type _, feld, _, lookup_parts = self.names_to_path (lookup_splitted, self.get_met a()) Datei " C: \ Benutzer \ Boris \ dev \ rentout \ ventrentout \ lib \ site-packages \ django \ db \ mod els \ sql \ query.py ", Zeile 1383, in names_to_path field_names = Liste (get_field_names_from_opts (opts)) Datei" C: \ Benutzer \ Boris \ dev \ rentout \ vitrentout \ lib \ site-packages \ django \ db \ mod els \ sql \ query.py ", Zeile 43, in get_field_names_from_opts für f in opts.get_fields() Datei" C: \ Benutzer \ Boris \ Dev \ Miete out \ vitrentout \ lib \ site-packages \ django \ db \ mod els \ options.py ", Zeile 740, in get_fields return self._get_fields (include_parents = include_parents, include_hidden = include_hidden) Datei " C: \ Benutzer \ Boris \ dev \ rentout \ vitrentout \ lib \ site-packages \ django \ db \ mod els \ options.py ", Zeile 802, in _get_fields all_fields = self._relation_tree Datei" C: \ Users \ Boris \ dev \ rentout \ vitrentout \ lib \ site-packages \ django \ utils \ functional.py ", Zeile 60, in get res = Instanz. dict [self.name] = self.func (Instanz) Datei "C: \ Benutzer \ Boris \ dev \ rentout \ virtrentout \ lib \ Site-Pakete \ django \ db \ mod els \ options.py", Zeile 709, in _relation_tree return self._populate_directed_relation_graph() Datei "C: \ Benutzer \ Boris \ dev \ rentout \ ventrentout \ lib \ site-packages \ django \ db \ mod els \ options.py", Zeile 681, in _populate_directed_relation_graph all_models = self.apps.get_models (include_auto_created = True) Datei "C: \ Benutzer \ Boris \ dev \ rentout \ vitrentout \ lib \ site-packages \ django \ utils \ lru_cache.py", Zeile 101, in Wrapper result = user_function (* args, ** kwds) Datei "C: \ Benutzer \ Boris \ dev \ rentout \ vitrentout \ lib \ site-packages \ django \ apps \ r egistry.py", Zeile 168, in get_models self.check_models_ready() Datei "C: \ Benutzer \ Boris \ dev \ rentout \ vitrentout \ lib \ site-packages \ django \ apps \ r egistry.py", Zeile 131, in check_models_ready appRegistryNotReady erhöhen ("Models aren 't geladen noch. ") django.core.exceptions.AppRegistryNotReady: Modelle sind noch nicht geladen.
Was könnte das Problem sein? Gibt es eine bessere Möglichkeit, alle gängigen abstrakten Modelle und Auswahlmöglichkeiten zu gruppieren, um Randomität zu vermeiden?
UPDATE:
Dies ist der Ort des Fehlers I
from django.db import models
from concurrency.fields import IntegerVersionField
from client.models import Tenant
from unit.models import Unit, Extra
from common.models import CommonInfo
from common.models import NOTE_STATUS_CHOICES
import django_filters
# Create your models here.
class NotTerminatedActiveManager(models.Manager):
def get_queryset(self):
return super(NotTerminatedActiveManager, self).get_queryset().filter(is_terminated=False,is_active=True)
class Lease(CommonInfo):
version = IntegerVersionField()
amount = models.DecimalField(max_digits=7, decimal_places=2)
is_notrenewed = models.BooleanField(default=False)
unit = models.ForeignKey(Unit)
is_terminated = models.BooleanField(default=False)
not_terminated_active_objects = NotTerminatedActiveManager()
def __unicode__(self):
return u'%s %i %s %s ' % ("#", self.id,"unit", self.unit)
class LeaseConditions(CommonInfo):
version = IntegerVersionField()
start_date = models.DateTimeField()
end_date = models.DateTimeField()
lease = models.ForeignKey(Lease)
increase = models.DecimalField(max_digits=7, decimal_places=2)
amount = models.DecimalField(max_digits=7, decimal_places=2)
is_terminated = models.BooleanField(default=False)
not_terminated_active_objects = NotTerminatedActiveManager()
def __unicode__(self):
return u'%s %i %s %s %s %s %s %s' % ("#", self.id,"first_name", self.first_name, "last_name", self.last_name, "phone", self.phone)
def clean(self):
model = self.__class__
if self.lease_id and (self.is_terminated == False) and model.objects.filter(lease=self.lease, is_active=True).count() == 1:
raise ValidationError('!Lease has a active condition already, Terminate prior to creation of new one'.format(self.lease))
class LeaseTenant(CommonInfo):
version = IntegerVersionField()
tenant = models.ForeignKey(Tenant)
lease = models.ForeignKey(Lease)
is_financialy_accountable = models.BooleanField(default=True)
class LeaseExtra(CommonInfo):
version = IntegerVersionField()
extra = models.ForeignKey(Extra)
lease = models.ForeignKey(Lease)
is_included = models.BooleanField(default=True)
class LeaseDiscount(CommonInfo):
version = IntegerVersionField()
amount = models.DecimalField(max_digits=7, decimal_places=2)
leaseconditions = models.ForeignKey(LeaseConditions)
period_date = models.DateTimeField()
class LeasePayment(CommonInfo):
version = IntegerVersionField()
amount = models.DecimalField(max_digits=7, decimal_places=2)
lease = models.ForeignKey(Lease)
period_payed_for = models.DateTimeField()
payment_date = models.DateTimeField()
class Note(CommonInfo):
version = IntegerVersionField()
title = models.CharField(max_length=200)
contact = models.ForeignKey(Lease)
followup_date = models.DateTimeField(null=True, blank=True)
status = models.CharField(max_length=1, default='P',
choices=NOTE_STATUS_CHOICES)
#widgets = {
#Use localization and bootstrap 3
#'datetime': DateTimeWidget(attrs={'id':"id_followup_date"}, usel10n = True, bootstrap_version=3)}
def __unicode__(self):
return u'%s %s %s %s %s %i %s %s %s %s %s %s %s %s' % ("Status:", self.status, "Follow Date:", self.followup_date, "Note #:", self.id, "Published:", self.creation_time, "Author:",self.author,"/Title:" , self.title,"/Body:" , self.body )
class LeaseFilter(django_filters.FilterSet):
class Meta:
model = Lease
fields = ['is_notrenewed', 'unit',
'is_terminated']
#provider = django_filters.ModelChoiceFilter(queryset=Provider.objects.all(),
#name = django_filters.ModelChoiceFilter(queryset=Lease.objects.all().order_by('name'))
hast du '__init__' im App-Verzeichnis hinzugefügt? – kt14
"Und schließlich, in all meinen Apps habe ich hinzugefügt: [Importe]" Könnten Sie bitte ein aktuelles Beispiel angeben? – vmonteco
Der Traceback zeigt an, dass der Fehler in 'rentout \ lease \ models.py' liegt, den Sie nicht angezeigt haben. – Alasdair