Maison > développement back-end > Tutoriel Python > Comment `rated_name` améliore-t-il les relations ManyToManyField et ForeignKey de Django ?

Comment `rated_name` améliore-t-il les relations ManyToManyField et ForeignKey de Django ?

Susan Sarandon
Libérer: 2024-12-13 11:42:12
original
798 Les gens l'ont consulté

How Does `related_name` Enhance Django's ManyToManyField and ForeignKey Relationships?

Related_Name dans les champs ManyToManyField et ForeignKey de Django

Le framework Django offre un système ORM (Object-Relational Mapping) robuste, permettant des interactions pratiques avec bases de données. Deux types de champs critiques dans l'ORM de Django sont ManyToManyField et ForeignKey.

Objectif de l'argument Related_Name

Un aspect important de ces champs est l'argument Related_name. Il spécifie le nom de la relation dans le sens inverse, du modèle associé au modèle actuel. Par défaut, Django attribue automatiquement un nom de relation inverse en utilisant la convention de dénomination "[rated_model_name]_set". Cependant, l'argument Related_name permet de personnaliser ce nom.

Utilisation dans un ManyToManyField

Considérons le code suivant comme exemple :

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

Dans ce code, le Related_name='maps' précise que dans le modèle User, le nom de la relation inverse pour le modèle Map sera "maps".

Avantages de la personnalisation du nom_connexe

La personnalisation du nom_connexe offre plusieurs avantages :

  • Lisibilité améliorée : La syntaxe User.maps est plus concise et plus facile à lire que User.map_set.all().
  • Requêtes plus propres : Vous pouvez utiliser current_user.maps.all() pour récupérer toutes les instances de Map liées à current_user, rendant le code plus lisible et maintenable.
  • Meilleure réutilisabilité du code : La personnalisation du nom_connexe permet des conventions de dénomination cohérentes entre différents modèles, améliorant ainsi le code réutilisabilité et collaboration.

Désactivation de la relation ascendante

Si vous souhaitez désactiver entièrement la création de la relation ascendante, vous pouvez définir Related_name=' '. Cette option est utile lorsque vous n'avez pas besoin d'un accès inversé au modèle associé.

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