2013-08-22 76 views

回答

8

child_set是您的parent字段在Child模型中的默認related_name字段。如果您指定了不同的代碼,則必須相應地更改代碼。

from django.db.models import Count 

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

希望它有幫助。

+0

謝謝。我一直在尋找這個答案,使用搜索詞:「django order by set size」,希望這些標籤能夠幫助未來的人:) –

+0

如何將條件傳遞給Count()?我的意思是計數與孩子現場條件檢查。 –

1

在Django文檔 閱讀了關於aggregate功能,在任何情況下,你可以做parent_instance.child_set.count()讓孩子 的數目,如果我沒有記錯,你可以過濾並ORDER_BY這層關係。 這是鏈接reverse relations