Heim > Backend-Entwicklung > Python-Tutorial > Wie vereinfacht „lated_name' den Zugriff auf verwandte Modelle in Djangos „ManyToManyField' und „ForeignKey'?

Wie vereinfacht „lated_name' den Zugriff auf verwandte Modelle in Djangos „ManyToManyField' und „ForeignKey'?

Barbara Streisand
Freigeben: 2024-12-06 21:44:16
Original
224 Leute haben es durchsucht

How Does `related_name` Simplify Access to Related Models in Django's `ManyToManyField` and `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'))
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage