Django 按RelatedManager的_计数筛选查询集
我有一个查询集,我想根据Django 按RelatedManager的_计数筛选查询集,django,django-queryset,django-related-manager,Django,Django Queryset,Django Related Manager,我有一个查询集,我想根据相关名称的计数进行筛选。目前我有这样的想法: objResults = myObjects.filter(Q(links_by_source__status=ACCEPTED),Q(links_by_source__count=1)) 但是,当我运行此命令时,会收到以下错误消息: Cannot resolve keyword 'count' into field 我猜这个查询是在每个链接上按源连接单独运行的,因此没有计数函数,因为它不是我正在使用的查询集。是否有一种过
相关名称的计数进行筛选。目前我有这样的想法:
objResults = myObjects.filter(Q(links_by_source__status=ACCEPTED),Q(links_by_source__count=1))
但是,当我运行此命令时,会收到以下错误消息:
Cannot resolve keyword 'count' into field
我猜这个查询是在每个链接上按源
连接单独运行的,因此没有计数
函数,因为它不是我正在使用的查询集。是否有一种过滤方法,以便对于返回的每个对象,\u source
的链接数正好是1?在对其进行过滤之前,您需要使用聚合函数获取计数
from django.db.models import Count
myObjects.filter(
links_by_source__status=ACCEPTED).annotate(link_count=Count('links_by_source')
).filter(link_count=1)
注意,您应该注意此处:该查询统计已接受链接的数量,不确定您是否需要该数量,或者是否要检查所有链接的总数是否为1。
count
是您的模型的字段吗?不,我使用它的方式与您使用的objQuerySet.count()相同
在查询集上。Django QuerySets中没有\uu计数
,我想知道如何获得问题中描述的功能—能够根据外键关系中对象的数量进行过滤。我对\u count
的加入只是一个猜测,我在这里发布它是为了演示我的尝试。出于某种原因,它告诉我没有定义按源链接。啊-结果是关系名需要作为字符串传递。我会接受你的帖子,但似乎不能对它进行如此小的编辑-你能编辑它,使链接由源是一个字符串吗?