我知道由于某种原因,Django中没有group_by
。但是,我需要获取每种可能状态下的项目数。可以通过一个非常简单的查询来完成:
select status, count(status) from table group_by status;
同时,在我们的项目中,我们尝试在Django ORM中做尽可能多的事情,到目前为止,除了某些迁移之外,从未在任何地方使用原始SQL。
在Django ORM中有没有做到这一点而又没有重复的方法?
您可以这样尝试(使用annotation
):
annotation
您可以使用from django.db.models import Count
YourModel.objects.values('status').annotate(status_count=Count('status'))
对查询集进行分组。
values()
将返回values()