Я получил простое требование (не простую реализацию) и выяснил, как его достичь, не совершая многократных обращений к дБ и без .extra()
в наборе запросов.
Task:
name = xxx
status = models.IntegerField(choices=some_choices)
project = ForeignKey(Project)
Project:
name = xxx
code = xxx
Проекты содержат Задачи, получившие различные статусы. (Предположим, статус = 3 завершен)
Теперь я хочу перечислить все проекты с их общими и завершенными задачами, как показано ниже
- Проект 1, total_tasks = 5, завершено_tasks = 2
- Проект 1, total_tasks = 2, завершено_tasks = 1
Я могу получить total_tasks с аннотацией, но не complete_tasks, так как это требует условия в аннотации. Есть ли в любом случае, чтобы сделать это?