2013-08-22 3 views

Antwort

8

child_set ist der Standardwert related_name von Ihrem parent Feld im Modell Child. Wenn Sie einen anderen angegeben haben, müssen Sie den Code entsprechend ändern.

from django.db.models import Count 

ordered_parents = Parent.objects.annotate(num_children=Count('child_set')).order_by('-num_childen') 

Ich hoffe, es hilft.

+0

Danke. Ich suchte diese Antwort mit den Suchbegriffen: "django order by set size", hoffe, diese Tags werden Menschen in der Zukunft helfen :) –

+0

Wie Bedingung an Count() übergeben? Ich meine mit Kindern Feldzustandsüberprüfung zählen. –

1

lesen auf aggregate Funktionen in django docs bis und in jedem Fall können Sie tun parent_instance.child_set.count() die Zahl der Kinder zu bekommen, und wenn mich nicht alles täuscht Sie filtern und order_by auch diese Beziehung . Hier ist ein Link für reverse relations