查询相关对象的数量集

时间:2012-03-21 14:13:50

标签: python django object django-queryset

我的模型A带有fk模型B

现在我需要创建一个查询集,使得所有B的链接都少于5个。

编辑也许我应该提到这是一个Django项目,我正在寻找的是一个有效的,足以运行很多次的Queryset引用

我尝试过类似的事情:

B.objects.select_related()

但我不明白如何限制此qs仅包括最多5次出现的B

2 个答案:

答案 0 :(得分:2)

使用注释:

from django.db.models import Count

B.objects.annotate(a_count=Count('a')).filter(a_count__lt=5)

请参阅:https://docs.djangoproject.com/en/dev/topics/db/aggregation/

答案 1 :(得分:0)

您的问题不是很清楚,但我理解的是我认为您需要的代码就是这些代码:

from django.db.models import Count
b_qs = B.objects.annotate(num_a=Count('authors')).filter(num_a__lt=5)