【问题标题】:How to query for count?如何查询计数?
【发布时间】:2010-11-26 00:23:53
【问题描述】:

我有一个问题,

Bid.objects.filter(shipment=shipment, status=BidStatuses.ACCEPTED, user=request.user, items__count=0).exists()     

不起作用的部分是items__count=0。投标与项目具有多对多的关系。我需要检查这个出价是否有 0 个项目。我该怎么做?

【问题讨论】:

    标签: django django-orm


    【解决方案1】:

    聚合。

    http://docs.djangoproject.com/en/1.2/topics/db/aggregation/

    查看文档,阅读示例,您会找到答案

    【讨论】:

    • Book.objects.annotate(num_authors=Count('authors')).filter(num_authors__gt=1)。出于某种原因,没有考虑在同一个查询中进行注释然后过滤......在其他任何地方使用注释。
    【解决方案2】:

    为了记录(已经接受了带有 Django 聚合文档链接的答案),OP 需要的是:

    Bid.objects.annotate(item_num=models.Count('items')).filter(shipment=shipment, status=BidStatuses.ACCEPTED, user=request.user, item_num=0).exists()
    

    【讨论】:

    • 我将 2 和 2 放在一起,但感谢您加倍努力并拼写出来:)
    猜你喜欢
    • 2014-11-12
    • 1970-01-01
    • 2013-02-14
    • 2021-12-27
    • 2016-11-19
    • 2021-08-04
    • 1970-01-01
    • 2022-01-24
    相关资源
    最近更新 更多