2011-06-09 1 views
0

Le documentation sur contenttypes dit ceci:A quoi servent les relations génériques inverses?

Si vous savez quels modèles vous serez en utilisant le plus souvent, vous pouvez également ajouter une relation générique « reverse » pour permettre une API supplémentaire.

Mais quelle est leur utilisation pratique? Je n'arrive pas à comprendre.

Répondre

3

Si vous avez un modèle avec:

A) Kitchen ---generic relation---> any food 

Mais vous savez que vous ferez souvent:

B) Vegetables.get_kitchen() 

Au lieu de faire get_kitchen(), vous pouvez ajouter manuellement la relation inverse dans le Vegetable modèle et il obtiendra le Kitchen pour vous.

Ce type de relation inverse est automatiquement ajouté à l'autre modèle pour la relation OneToMany en utilisant ForeignKey parce que vous savez quels modèles vont être des deux côtés de la relation.

Comme avec une relation générique, cela peut être n'importe quel modèle, Django n'ajoute pas la relation inverse pour vous. Vous devez le spécifier manuellement si vous sentez que vous en avez besoin.