Es gibt diese Zeile im Django-Tutorial, Schreiben Ihrer ersten Django-App, Teil 1 :
p.choice_set.create(choice='Not much', votes=0)
Wie wird es choice_set
ins Leben gerufen und was ist es?
Ich nehme an, der choice
Teil ist die Kleinbuchstabenversion des Choice
im Tutorial verwendeten Modells , aber was ist das choice_set
? Können Sie das näher erläutern?
UPDATE: Basierend auf Bens Antwort habe ich diese Dokumentation gefunden: Folgende Beziehungen "rückwärts" .
Antworten:
Sie haben einen Fremdschlüssel erstellt,
Choice
der sich jeweils auf a beziehtQuestion
.Jedes hat also
Choice
explizit einquestion
Feld, das Sie im Modell deklariert haben.Djangos ORM folgt die Beziehung rückwärts von
Question
ebenfalls automatisch ein Feld für jede Instanz zu erzeugen genannt ,foo_set
woFoo
das Modell ist mit einemForeignKey
Feld in dieses Modell.choice_set
ist eine,RelatedManager
die Abfragesätze vonChoice
Objekten erstellen kann, die sich auf dieQuestion
Instanz beziehen , zq.choice_set.all()
Wenn Ihnen
foo_set
die von Django automatisch ausgewählte Benennung nicht gefällt oder wenn Sie mehr als einen Fremdschlüssel für dasselbe Modell haben und diese unterscheiden müssen, können Sie mit demrelated_name
Argument to Ihren eigenen übergeordneten Namen auswählenForeignKey
.quelle
RelatedManager
Recht , es ist eine, die Abfragesätze erstellen kann.