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'))
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!