2013-08-22 9 views

Odpowiedz

8

child_set jest domyślnym related_name z twojego parent pola w modelu Child. Jeśli podałeś inny, będziesz musiał odpowiednio zmienić kod.

from django.db.models import Count 

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

Mam nadzieję, że to pomaga.

+0

Dzięki. Szukałem tej odpowiedzi za pomocą wyszukiwanych terminów: "zamówienie django według ustalonego rozmiaru", mam nadzieję, że te znaczniki pomogą ludziom w przyszłości :) –

+0

Jak przekazać warunek do Count()? Mam na myśli liczyć się z kontrolą stanu pola dzieci. –

1

przeczytać na aggregate funkcji w docs django aw każdym przypadku można zrobić parent_instance.child_set.count() aby otrzymać liczbę dzieci i jeśli się nie mylę można filtrować, a także order_by że relacja . tutaj jest link do reverse relations

Powiązane problemy