Maison > développement back-end > Tutoriel Python > Comment « Related_name » simplifie-t-il l'accès aux modèles associés dans « ManyToManyField » et « ForeignKey » de Django ?

Comment « Related_name » simplifie-t-il l'accès aux modèles associés dans « ManyToManyField » et « ForeignKey » de Django ?

Barbara Streisand
Libérer: 2024-12-06 21:44:16
original
224 Les gens l'ont consulté

How Does `related_name` Simplify Access to Related Models in Django's `ManyToManyField` and `ForeignKey`?

Application de Related_name à ManyToManyField et ForeignKey pour un accès simplifié

Question :

Quel est le but de l’argument Related_name pour les champs ManyToManyField et ForeignKey ? Prenons l'exemple ci-dessous :

class Map(db.Model):
    members = models.ManyToManyField(User, related_name='maps',
                                     verbose_name=_('members'))
Copier après la connexion

Quel est l'effet de la définition de Related_name='maps' sur le modèle utilisateur ?

Réponse :

L'attribut Related_name définit le nom de la relation inverse du modèle référencé (dans ce cas, User) au modèle actuel (Map). Généralement, Django crée automatiquement une relation inverse avec le suffixe _set, mais spécifier un nom_connexe personnalisé fournit un moyen plus succinct d'accéder aux objets associés.

Dans l'exemple fourni, si nous avons un objet utilisateur nommé current_user, nous peut accéder aux cartes qui lui sont associées en utilisant current_user.maps.all(). C'est plus pratique que la syntaxe de relation inverse par défaut, qui serait current_user.map_set.all().

Le nom_connexe peut également être défini sur « » pour désactiver complètement la création de la relation inverse.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal