Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 按RelatedManager的_计数筛选查询集_Django_Django Queryset_Django Related Manager - Fatal编程技术网

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
的加入只是一个猜测,我在这里发布它是为了演示我的尝试。出于某种原因,它告诉我没有定义
按源链接。啊-结果是关系名需要作为字符串传递。我会接受你的帖子,但似乎不能对它进行如此小的编辑-你能编辑它,使链接由源是一个字符串吗?