Django: групповая аннотация не работает должным образом - PullRequest
0 голосов
/ 14 марта 2020

Я создаю простое приложение todo, и мне нужно сгруппировать их по status и status occurence.

Я попытался использовать:

instance = request.user
instance.todos.values('status').annotate(counter=Count('status'))

, но я получаю такой вывод:

<QuerySet [{'status': 'ON-GO', 'counter': 1}, {'status': 'ON-GO', 'counter': 1}, {'status': 'ON-GO', 'counter': 1}, {'status': 'CHECK', 'counter': 1}, {'status': 'CHECK', 'counter': 1}]>

Я использовал этот метод раньше, и он дал мне необходимые результаты, но теперь он просто не работает.

какие-либо обходные пути?

1 Ответ

0 голосов
/ 14 марта 2020

Извините, я забыл order_by, я потратил час, пытаясь выяснить, почему он не работает ...

instance = request.user
instance.todos.values('status').order_by('status').annotate(counter=Count('status'))

вывод:

<QuerySet [{'status': 'CHECK', 'counter': 2}, {'status': 'ON-GO', 'counter': 3}]>
...