Суммарная сумма и счет модели Django одновременно - PullRequest
0 голосов
/ 08 мая 2018

Итак, у меня есть запрос типа

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 используется совокупная ссылка на внешний ключ, поэтому я запутался. Если нет, я должен добавить еще одну строку запроса orm, чтобы получить количество.

1 Ответ

0 голосов
/ 08 мая 2018

Синтаксис, который вы предоставили, должен работать.Все, что вам нужно сделать, это заменить Count('*') на Count('id') или Count('pk') для подсчета всех записей.

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

Вывод будет выглядеть так:

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