django,如何在 Q 中使用计数

     2023-02-24     193

关键词:

【中文标题】django,如何在 Q 中使用计数【英文标题】:django, how to Use Count in Q 【发布时间】:2015-09-29 21:29:28 【问题描述】:

我有以下型号:

class Group(models.Model):

    group_name = models.CharField(max_length=16)

class Member(models.Model):

    group = models.ForeignKey('Group')
    member_name = models.CharField(max_length=16)
    gender = models.BooleanField() #False is "female", True is "male"

如何找到没有MemberGroup,或者Members的男性数量为零?

我尝试了以下方法,但没有成功:

Group.objects.filter( Q(member__isnull=True) |
                      Q(member__isnull=False) &
                      Q( Count(member__gender=True)=0 ) )

【问题讨论】:

【参考方案1】:

解决方案,

Group.objects.filter(Q(member__isnull=True) | ~Q(member__gender=True))

当您尝试获取可能返回多个结果的内容时,您应该使用 filter 而不是 get

如果要统计查询集,可以使用,

Group.objects.filter(Q(member__gender=False )).count()

【讨论】:

是的,过滤器是正确的,但您的解决方案不起作用。我想找到没有成员或所有成员都是女性的“组”。 (1) Group.objects.filter(Q(member__isnull=True) | ~Q(member__gender=True)).distinct(),你应该添加 distinct。 (2) 你的解决方案是对的,因为它不健壮。如果我想要“男性成员为 2”怎么办。 (3) 但它仍然有效,所以标记你的答案有用。

在 django 中使用多个字段计数(不同)

】在django中使用多个字段计数(不同)【英文标题】:Count(distinct)withmultiplefieldsindjango【发布时间】:2020-08-1714:50:55【问题描述】:我在这里尝试将Djangorawsql查询转换为Django查询集。但问题是——如何在两列中实现distinct?SQL查... 查看详情

如何在 Django 模板中使用变量索引访问列表?

】如何在Django模板中使用变量索引访问列表?【英文标题】:HowtoaccesslistusingvariableindexesinDjangotemplates?【发布时间】:2012-11-2602:49:15【问题描述】:比如说,我有两个对象列表,foo和bar。在Django模板中,在循环通过foo时,有一个... 查看详情

Django 在模板标签中过滤和计数

】Django在模板标签中过滤和计数【英文标题】:Djangofilterandcountintemplatetag【发布时间】:2022-01-2202:43:53【问题描述】:我正在尝试使用Django模板引擎在模板中过滤和计算特定的QuerySet。不能让它工作。film_list是上下文,film是表,... 查看详情

如何在 Django 中过滤对象以进行计数注释?

】如何在Django中过滤对象以进行计数注释?【英文标题】:HowtofilterobjectsforcountannotationinDjango?【发布时间】:2015-08-2511:09:35【问题描述】:考虑简单的Django模型Event和Participant:classEvent(models.Model):title=models.CharField(max_length=100)class... 查看详情

在 Django 中使用 Q() 动态构建复杂查询 [关闭]

】在Django中使用Q()动态构建复杂查询[关闭]【英文标题】:DynamicallybuildcomplexquerieswithQ()inDjango[closed]【发布时间】:2013-02-0403:22:22【问题描述】:Firstexample:#ANDingQobjectsq_object=Q()q_object.add(Q(),Q.AND)#ORingQobjectsq_object=Q()q_object.add( 查看详情

在 django 分页中显示页面项目计数

】在django分页中显示页面项目计数【英文标题】:Showpageitemscountindjangopagination【发布时间】:2010-12-1322:42:49【问题描述】:我试图弄清楚如何在我的模板中使用django分页来显示类似“显示52个中的1-10个”的内容。我自己完成了分... 查看详情

如何在 django 注释中从 0 开始计数?

】如何在django注释中从0开始计数?【英文标题】:HowtostartCountfrom0indjangoannotation?【发布时间】:2021-06-1423:33:34【问题描述】:我有以下代码来计算与每个活动相关的门票。classEventManager(models.Manager.from_queryset(EventQuerySet)):defget_quer... 查看详情

在 django 映射中如何获得完整的选择字段计数

】在django映射中如何获得完整的选择字段计数【英文标题】:Indjangomappinghowtogetcompletecountofchoicefiled【发布时间】:2019-10-0217:27:20【问题描述】:我想要我的(预订类型)的计数我有3种类型的选择(模型中的选择字段)个人、团... 查看详情

如何在 django 查询中使用列表 [重复]

】如何在django查询中使用列表[重复]【英文标题】:Howtousealistindjangoquery[duplicate]【发布时间】:2020-03-0620:25:54【问题描述】:我有一个owner_id列表,我想在django查询中使用该列表,但它给了我以下错误:TypeError:int()参数必须是字... 查看详情

django objects.filter Q() 在一个查询中可以使用多少次?

】djangoobjects.filterQ()在一个查询中可以使用多少次?【英文标题】:Howmanytimecandjangoobjects.filterQ()beusedinonequery?【发布时间】:2014-12-0502:29:30【问题描述】:鉴于我的用户表有大量用户名可以以数字或字母开头,我如何才能获得名... 查看详情

在 Django 中使用 Q 查询外键值

】在Django中使用Q查询外键值【英文标题】:QueryingwithforeignkeyvaluesinDjangowithQ【发布时间】:2016-03-3109:34:09【问题描述】:我有一个Restaurant模型和一个与Restaurant有外键关系的Schedule模型。我目前正在尝试查询目前正在营业的餐厅... 查看详情

Django:如何在模板的 if 语句中使用变量?

】Django:如何在模板的if语句中使用变量?【英文标题】:Django:HowcanIuseavariableinsideanifstatementinthetemplate?【发布时间】:2017-03-2514:24:19【问题描述】:我的views.py交出了一个名为“preSelect”的变量,其中包含一个整数值。在模板中... 查看详情

Django - 如何将 QuerySet 转换为 Q 对象?

】Django-如何将QuerySet转换为Q对象?【英文标题】:Django-HowtotransformaQuerySettoaQobject?【发布时间】:2011-03-1401:27:59【问题描述】:有没有办法在django中将QuerySet转换为Q对象?我的具体动机:我想从另一个QuerySet(qs_B)中减去一个QuerySe... 查看详情

django 在这种情况下如何使用Q和过滤related_name?

】django在这种情况下如何使用Q和过滤related_name?【英文标题】:djangoHowtouseQandfilterrelated_nameinthiscase?【发布时间】:2020-04-0119:40:17【问题描述】:我有一个类似的跟随模型:classFollow(models.Model):user=models.ForeignKey(User,on_delete=models.C... 查看详情

在 django 中使用过滤计数而不是连接表返回错误值

】在django中使用过滤计数而不是连接表返回错误值【英文标题】:usingFilteredCountindjangooverjoinedtablesreturnswrongvalues【发布时间】:2018-07-1712:41:56【问题描述】:为了简单起见,我有四个表(A、B、Category和Relation),Relation表存储A在... 查看详情

使用 Q-Objects 在 Django 中动态构建复杂查询

】使用Q-Objects在Django中动态构建复杂查询【英文标题】:DynamicallybuildingcomplexqueriesinDjangousingQ-Objects【发布时间】:2021-01-1701:30:59【问题描述】:我有一些项目的数据库查询(containers)。有一个相关表可以定义一些限制(仅限***org... 查看详情

Django:我如何在 django.db.models.query QuerySet 中重载 Q 以在我的管理器中用于特殊目的

】Django:我如何在django.db.models.queryQuerySet中重载Q以在我的管理器中用于特殊目的【英文标题】:Django:howcouldIoverloadQindjango.db.models.queryQuerySettouseforaspecialpurposeinmyManager【发布时间】:2015-09-2617:03:23【问题描述】:首先,由于这是... 查看详情

如何从 Django 查询集中获取模板的可迭代计数?

】如何从Django查询集中获取模板的可迭代计数?【英文标题】:HowdoIgetaniterablecountonatemplatefromaDjangoqueryset?【发布时间】:2017-02-2416:09:43【问题描述】:假设我正在使用以下代码在我的视图中获取一个查询集。topics=Topic.objects.all()... 查看详情