Я делаю запрос SELECT COUNT (*) GROUP BY и ORDER BY к моей модели Django:
ModelName.objects.values("field_name").annotate(total=Count("field_name")).order_by("field_name")
, который дает мне массив словарей со значениями счетчика как:
[{'field_name' : value1, 'total' : count_value1}, {'field_name' : value2, 'total' : count_value2}, ...]
Теперь мой field_name имеет фиксированный набор значений, и ответ на запрос не возвращает количество field_name значения, которых нет в моей БД. Я хочу создать объект словаря всех возможных значений field_name в качестве ключа , а его считать как значения .
Например: скажем, field_name может принимать любое из 3 значения: («a», «b», «c») и моя БД содержит 2 экземпляра типа «a», не содержит ни одного экземпляра типа «b» и 1 экземпляра типа «c ". Итак, мой запрос приведет к:
[{'field_name' : "a", 'total' : 2}, {'field_name' : "c", 'total' : 1}]
(обратите внимание, что он не содержит никаких объектов для значения "b" ). Я хочу преобразовать его в объект словаря, например:
{ "a" : 2, "b" : 0, "c" : 1 }
Какой самый простой и самый простой способ c реализовать это с помощью pythoni?
Я использую PostgreSQL, если поможет.