Heim >Backend-Entwicklung >Python-Tutorial >Wie vereinfacht „lated_name' den Zugriff auf verwandte Modelle in Djangos „ManyToManyField' und „ForeignKey'?
Anwenden von Related_name auf ManyToManyField und ForeignKey für vereinfachten Zugriff
Frage:
Was ist das? Zweck des related_name-Arguments für die Felder ManyToManyField und ForeignKey? Betrachten Sie das folgende Beispiel:
class Map(db.Model): members = models.ManyToManyField(User, related_name='maps', verbose_name=_('members'))
Welche Auswirkung hat die Definition von related_name='maps' auf das Benutzermodell?
Antwort:
Das Attribut „Related_Name“ definiert den Namen der umgekehrten Beziehung vom referenzierten Modell (in diesem Fall „Benutzer“) zurück zum aktuellen Modell (Karte). Normalerweise erstellt Django automatisch eine umgekehrte Beziehung mit dem Suffix _set, aber die Angabe eines benutzerdefinierten related_name bietet eine prägnantere Möglichkeit, auf die zugehörigen Objekte zuzugreifen.
Wenn wir im bereitgestellten Beispiel ein Benutzerobjekt mit dem Namen current_user haben, haben wir kann mit current_user.maps.all() auf die zugehörigen Karten zugreifen. Dies ist praktischer als die standardmäßige umgekehrte Beziehungssyntax, die current_user.map_set.all() lauten würde.
Der zugehörige_Name kann auch auf „ “ gesetzt werden, um die Erstellung der umgekehrten Beziehung vollständig zu deaktivieren.
Das obige ist der detaillierte Inhalt vonWie vereinfacht „lated_name' den Zugriff auf verwandte Modelle in Djangos „ManyToManyField' und „ForeignKey'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!