2009-10-21 5 views
10

J'ai un ensemble de requêtes dans Django qui appelle Model.objects.values('item') ... où 'item' est une clé étrangère.Afficher les valeurs Django() sur la clé étrangère dans le modèle en tant qu'objet au lieu de son identifiant

class Words(models.Model): 
    word = models.CharField() 

class Frequency(models.Model): 
    word = models.ForeignKey(Words) 
    ... 

Cela renvoie l'ID de l'élément et s'affiche en tant qu'ID dans le modèle. Comment est-ce que je montre la valeur réelle d'article dans le modèle au lieu de l'identification?

Répondre

12

Pour référencer les propriétés des éléments de clé étrangère, vous devez utiliser la notation de recherche '__' dans les champs. MyModel.objects.values('item__prop1', 'item__prop2', ...) devrait travailler pour vous.

Et vous pouvez l'imprimer dans des modèles en référençant les noms de propriété comme ceci, lorsque le nom de la variable de modèle pour le résultat est values.

{% for v in values %} 
    Prop1: {{ v.item__prop1 }} 
    Prop2: {{ v.item__prop2 }} 
    ... 
{% endfor %} 
+3

Il est évident que Achimnoi utilisait 'prop1' comme un exemple - vous devez faire 'Model.objects.values ​​('word__word')' dans la vue et '{{v.word__word}}' dans le modèle. –

+0

Merci, a travaillé magnifiquement. – simi

+0

merci de partager! – Xiwen

Questions connexes