Ich möchte ein Modell mit einer ManyToMany
-Beziehung mit sich selbst haben, ich weiß nicht, wie ich das schreiben soll, aber ich versuche, etwas Code zu schreiben, um zu veranschaulichen, was ich tun möchte.
Mein Model, das die Freunde durchgehen sollen
%Vor% In einem ManyToMany
-Feld mit durch Beziehung , wenn der Name des anderen Modells beispielsweise "Pet" wäre, würde ich meine Felder in der Klasse person
und pet
benennen und sie machen Modelle. ForeignKey(Person)
und Pet
zum Beispiel
Was soll ich mein fields
in meinem PersonFriends
Modell für die beiden Personenfelder nennen, jetzt da es sich um das gleiche Modell handelt?
Dies ist aus der db-Tabellenstruktur einer ManyToMany-Beziehung zu self aus meiner Model-Struktur. Django definiert es so ..
Ohne anzunehmen, dass Freundschaften symmetrisch sind. Weil Buzz Lightyear Woodys Freund sein könnte, aber Woody ist bis kurz vor Ende des Films nicht mit Buzz Lightyear befreundet. Sie können beide Modelle vereinfachen und dennoch über sinnvolle Lookup-Namen verfügen. Sie müssen natürlich sicherstellen, dass Sie zwei PersonFriends definieren, wenn es eine gute Freundschaft ist.
%Vor%Dies hat den zusätzlichen Bonus eines Kommentars für jede Richtung der Freundschaft. Tyrion denkt, dass Sansa ein reizendes und intelligentes, aber verlorenes Mädchen ist. Während Sansa denken könnte, dass Tyrion ein hässlicher, aber kluger und gutherziger Typ ist.
Alles ist in den offiziellen Dokumenten von ManyToManyField beschrieben. through_fields (Sie können dort nach rekursiven Beziehungen suchen, um schnell zu finden, was Sie brauchen):
für django 1.11 müssen Sie durch und (!) through_fields Argumente angeben:
%Vor%Tags und Links django django-models django-orm