Import von app-model-Klasse in einer anderen app-Modell
Habe ich 2 app: Mitarbeiter und Dienstleistungen, jedes mit seinem eigenen models.py
In Mitarbeiter models.py ich kann "von Dienstleistungen.Modelle import Services".
Wenn ich versuche, "von Mitarbeitern.Modelle importieren Status" in Dienstleistungen models.py ich bekomme diese Fehlermeldung:
Traceback (most recent call last): File
"/Users/lucas/Documents/projetos/cwk-manager/lib/python2.7/site-packages/Django-1.4.3-py2.7.egg/django/core/management/commands/runserver.py",
line 91, in inner_run
selbst.validate(display_num_errors=True) Datei "/Users/lucas/Documents/projetos/cwk-manager/lib/python2.7/site-packages/Django-1.4.3-py2.7.egg/django/core/management/base.py",
Linie 266, validieren
num_errors = get_validation_errors(s, app) - Datei "/Users/lucas/Documents/projetos/cwk-manager/lib/python2.7/site-packages/Django-1.4.3-py2.7.egg/django/core/management/validation.py",
Zeile 30, in get_validation_errors
für (app_name, Fehler) in get_app_errors().items(): Datei "/Users/lucas/Documents/projetos/cwk-manager/lib/python2.7/site-packages/Django-1.4.3-py2.7.egg/django/db/models/loading.py", line 158, in get_app_errors
selbst._populate() Datei "/Users/lucas/Documents/projetos/cwk-manager/lib/python2.7/site-packages/Django-1.4.3-py2.7.egg/django/db/models/loading.py", line 64, in _populate
selbst.load_app(app_name, True) File "/Users/lucas/Documents/projetos/cwk-manager/lib/python2.7/site-packages/Django-1.4.3-py2.7.egg/django/db/models/loading.py", line 88, in load_app
Modelle = import_module('.Modelle", app_name) File "/Users/lucas/Documents/projetos/cwk-manager/lib/python2.7/site-packages/Django-1.4.3-py2.7.egg/django/utils/importlib.py",
Zeile 35, in import_module
import(name) File "/Users/lucas/Documents/projetos/cwk-manager/cwk-manager/cwk_manager/coworkers/models.py",
Linie 2, im
aus Dienstleistungen.Modelle importieren, die Services-Datei "/Users/lucas/Documents/projetos/cwk-manager/cwk-manager/cwk_manager/services/models.py",
line 5, in
class-Services(nur Modelle.Modell): File "/Users/lucas/Documents/projetos/cwk-manager/cwk-manager/cwk_manager/services/models.py",
Zeile 11, in Dienstleistungen
status = Modelle.ForeignKey(Status) NameError: name 'Status' ist nicht definiert
--
Mitarbeiter models.py
from django.db import models
from services.models import Services
class Status(models.Model):
status_name = models.CharField(max_length=50)
status_description = models.TextField(blank=True, null=True)
class Meta:
verbose_name = "Status"
verbose_name_plural = "Status"
def __unicode__(self):
return self.status_name
Dienstleistungen models.py
from django.db import models
from coworkers.models import Status
# This table contains all the information about plans and other general services provided.
class Services(models.Model):
service_name = models.CharField(max_length=100)
service_description = models.TextField(blank=True, null=True)
service_price = models.DecimalField(max_digits=7, decimal_places=2, blank=True, null=True)
creation_date = models.DateField(auto_now_add=True)
last_update = models.DateField(auto_now=True)
status = models.ForeignKey(Status)
class Meta:
verbose_name = "Services"
verbose_name_plural = "Services"
def __unicode__(self):
return self.service_name
--
Kann mir jemand helfen, um zu sehen, was ich falsch mache?
Vielen Dank im Voraus!
InformationsquelleAutor Lucas Rezende | 2012-12-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Django 1.6.5:
Sollte dies sein:
Ich bin (jetzt) bewusst, die die OP ist mit Django 1.4.3 und, dass einige der Antworten lösen kann in dieser version von Django. Allerdings dauerte es eine Weile, um zu bemerken, die version und die Antworten funktionieren nicht in 1.6.5.
Prost!
InformationsquelleAutor e.thompsy
Verursacht wird dies durch die kreisförmige import in Python.
Sie können diese syntax verwenden:
Django bestimmen Modell über diesen Weg, so brauchen Sie nicht zu importieren-Status.
Andere Lösung in deinem Fall wäre zu löschen 2. import-Anweisung in Mitarbeiter.Modelle, weil Dienstleistungen, die scheint nicht verwendet zu werden, in diese Datei.
Habe ich verstanden, aber hat nicht funktioniert auf jeden Fall... ich habe es geändert, um ein neues Feld namens "is_cative" als boolean und jetzt ist es selved mein problem jetzt (dieses Problem ist ein wenig, aber dringend). Komisch, es hat nicht funktioniert, wie du gesagt hast... =/
InformationsquelleAutor kobuz
Es ist kreisförmig importieren, die Ergebnisse von Fehlern.
Können Sie versuchen,
Nun habe ich diese:
File "/Users/lucas/Documents/projetos/cwk-manager/cwk-manager/cwk_manager/coworkers/models.py", line 2, in <module> from services.models import Services File "/Users/lucas/Documents/projetos/cwk-manager/cwk-manager/cwk_manager/services/models.py", line 5, in <module> class Services(models.Model): File "/Users/lucas/Documents/projetos/cwk-manager/cwk-manager/cwk_manager/services/models.py", line 11, in Services status = models.ForeignKey(coworkers.models.Status) AttributeError: 'module' object has no attribute 'models'
A import B, dann B nicht importieren, sonst ist es ok.
versuchen Sie, status = Modelle.ForeignKey("Mitarbeiter.Modelle.- Status) oder status = Modelle.ForeignKey("Mitarbeiter.Status")
gut, es ist immer noch ein import-Problem. ich bin mir nicht ganz sicher, was passiert ist..ich verwendet, um diese Fehler, eine quick-and-dirty Lösung ist, einfach setzen Sie Sie in einer Datei..
InformationsquelleAutor Qiang Jin
Erstellen Sie einfach die Status-Modell Erster und tun syncdb und danach erstellen Sie das services-Modell und syncdb. Es sollte funktionieren.
Das problem ist, dass python nicht ab le zu finden, die den 'Status' coz seinen ersten versuchen, um das Services-Modell.
InformationsquelleAutor Saransh Mohapatra
Ich habe alle Arten von Fehlern, während Sie syncdb:
Schließlich wurde mir klar, ich hatte vergessen, fügen Sie die neue app settings.py. Admin konnte es nicht finden entweder. Das sollte mein Erster Hinweis. Sonst konnte ich tun, was war die Antwort von e ist.thompsy für django 1.6.5
InformationsquelleAutor Vicky T