2010-02-10 7 views
0

Dans Django,groupe Django données de relation

je peux faire valeur(), puis distincte() pour le groupe par.

A 
{ 
    Foreign Key B 
} 
B 
{ 
    String name 
} 

Cependant, est-il possible de grouper en utilisant les données d'un objet associé? C'est à dire. Dans la relation ci-dessus, puis-je grouper A par le nom de B?

+0

Avez-vous essayé de faire A. objects.all(). value ("B__name"). distinct() – buckley

Répondre

0

Je pense que vous pouvez commander_by sur le modèle FKey.

A.objects.order_by('B__name') 

Iff vous ne pouvez pas, vous devez utiliser l'API d'annotation de Django ORM, de faire un nouveau champ et vous pourrez le commander en conséquence:

A.objects.annotate(bname='B__name').order_by('bname') 
+0

Le 1er fonctionne. Le 2e ne signifie pas que l'annotation nécessite une agrégation à l'intérieur. Merci – jameszhao00

Questions connexes