Ich habe eine Python/Flask-App, die MongoEngine für die Datenbank verwendet. Ich habe meine Modelle definiert, und alles funktionierte, bis die neuesten Modelle hinzugefügt wurden. Ich glaube, das Problem tritt auf, weil beide Modelle sich gegenseitig referenzieren und eine rekursive Importschleife verursachen. Ich bin mir nicht sicher, was ich tun soll, um es zu lösen. Dies wird ein großes Projekt mit vielen Modellen sein, die sich gegenseitig referenzieren. Diese bestimmte Instanz ist, weil Benutzer in Praxen sind und Praxen Benutzer haben, also ist es eine Beziehung von vielen zu vielen.Python rekursive Import Problem
Benutzermodell
from utilities.common import utc_now_ts as now
from mongoengine import *
from models.practice import Practice
class User(Document):
name = StringField()
created = IntField(db_field="cr", default=now)
practices = ListField(ReferenceField(Practice))
Und die Praxis Modell
from utilities.common import utc_now_ts as now
from mongoengine import *
from models import user
class Practice(Document):
name = StringField()
created = IntField(db_field="cr", default=now)
users = ListField(ReferenceField(user.User))
admins = ListField(ReferenceField(user.User))
Der Fehler, den ich bekommen ist ImportError: cannot import name 'Practice'
ich zwei weitere Modelle haben, die in das gleiche Problem laufen. Die Modelle funktionierten gut, bis ich die Importe zu dem anderen Modell hinzufügte.
Gibt es einen Grund, dass sie rekursiv referenziert werden? Der beste Weg, um dieses Problem zu lösen, ist wahrscheinlich ein Modell-Refactor, um eine der Abhängigkeiten zu entfernen. –
Können Sie mir zeigen, wie ich es ändern kann? Ich brauche eine Liste von Benutzern für jedes Modell, und ich brauche eine Liste von Gruppen für jeden Benutzer. Dies war die Methode, die Leute empfohlen haben, als ich nach dem Thema gesucht habe. – Jhorra