Django ORM: Как использовать метод count в методе values_list? - PullRequest
0 голосов
/ 17 февраля 2020

Чтобы упростить задачу, мне нужно выполнить этот запрос:

 select state,count(*) from Airports group by state order by count(*) desc

И желаемым результатом моего запроса является словарь, подобный следующему:

{
 'state1': value1,
 'state2': value2,
 'state3': value3,
        ...
 'staten': valuen,
}

Я провел некоторое исследование и Кажется, мне нужно использовать агрегаты и аннотации, но я немного заблуждаюсь, как это сделать с values_list ().

Могу ли я использовать счетчик внутри него, как это?

Airport.objects.values_list('state', Airport.objects.count()).annotate('state').order_by(-Airport.objects.count())

1 Ответ

2 голосов
/ 17 февраля 2020
from django.db.models import Count

Airport.objects.values('state').annotate(count=Count('state')).order_by('-count')
...