Включить варианты без записей в сгруппированный набор запросов - PullRequest
1 голос
/ 12 апреля 2020

Я пытаюсь сделать запрос в django, группируя по полю с выбором. Я хочу получить все варианты выбора, все go варианты без записей в базе данных.

Моя модель:

CHOICES = (
  ('new', 'New'),
  ('in_process', 'In process'),
  ('finished', 'Finished')
)
class Task(models.Model):
  ...
  status = models.CharField(max_length=10, choices=CHOICES)

Мой текущий запрос:

qs = Task.objects\
  .values('status')\
  .annotate(total=models.Count('status'))

В данный момент у меня есть только законченное задание в БД, но я хочу получить все значения выбора, с нулем, если у него нет записей.

Есть идеи?

1 Ответ

0 голосов
/ 12 апреля 2020

Вы можете сделать это с помощью:

Task._meta.get_field('status').choices

Выбор в поле модели применяется только на уровне приложения (Python) - БД не знает, что выбор возможен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...