【问题标题】:How to compare counts in django ORM?如何比较 django ORM 中的计数?
【发布时间】:2019-02-28 14:51:01
【问题描述】:

我有这样的模型:

class A(models.Model):
  done = models.Boolean()

并想检查是否所有done 都是True

A.objects.count() == A.objects.filter(done=True).count()

但是如何在一个查询中在 DB 中做同样的事情呢?

???
A.objects.annotate(Count('done??')).aggregate(??)
???

【问题讨论】:

    标签: django django-orm


    【解决方案1】:

    您应该过滤 done=False 并检查是否有 exists 的任何结果。

     A.objects.filter(done=False).exists()
    

    【讨论】:

    • 这绝对是一个正确的答案,但我仍然想知道如何进行有问题的聚合(可能对未来的我有用)。有什么提示吗?
    猜你喜欢
    • 1970-01-01
    • 2018-06-19
    • 2021-11-16
    • 2013-06-22
    • 2020-08-18
    • 2018-12-27
    • 2011-08-18
    • 2017-09-26
    • 2021-10-20
    相关资源
    最近更新 更多