Django 模型同时汇总和计数

Django model aggregate sum and count at same time

所以我有一个类似

的查询
SELECT sum(project_shares) as shares, count(*) as count FROM vv_projects

django 2.0 中是否有如下语法

Projects.objects.aggregrate(Sum('project_shares'),Count('*'))

并输出类似

{'project_shares_sum':9,'count':8}

在 django 2.0 中,count 使用聚合外键引用,所以我很困惑。 如果不是,我已经添加了另一个 orm 查询行来获取计数。

您提供的语法应该有效。您所要做的就是将 Count('*') 替换为 Count('id')Count('pk') 以计算所有条目。

Projects.objects.aggregrate(Sum('project_shares'), Count('pk'))

输出如下:

{'project_shares__sum':9,'pk__count':8}