私は単純な要件(単純な実装ではない)を取得し、dbに複数のヒットを与えることなく、またクエリセットを使用せずにそれを達成する方法を考え出しました.extra()
。
Task:
name = xxx
status = models.IntegerField(choices=some_choices)
project = ForeignKey(Project)
Project:
name = xxx
code = xxx
プロジェクトには、さまざまなステータスを取得したタスクが含まれています。(status = 3が完了したと仮定します)次に、以下のように、すべてのプロジェクトとその合計タスクおよび完了したタスクをリストします。
- プロジェクト1、total_tasks = 5、completed_tasks = 2
- プロジェクト1、total_tasks = 2、completed_tasks = 1
アノテーションでtotal_tasksを取得できますが、annotationで条件が必要なため、completed_tasksは取得できません。とにかくそれをすることはありますか?