假设我们有Django模型Parent
和Child
。 Child
属于一个Parent
,一个Parent
可以有多个子代。
class Parent(models.Model):
pass
class Child(models.Model):
parent = models.ForeignKey(Parent)
我想按 child 数量获得所有 parent 的集合。
最佳答案
child_set
是related_name
模型中parent
字段的默认Child
。如果您指定了其他代码,则必须相应地更改代码。
from django.db.models import Count
ordered_parents = Parent.objects.annotate(num_children=Count('child_set')).order_by('-num_childen')
希望能帮助到你。
关于Django通过子模型计数(一对多关系)对父模型进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18374758/