これが私のモデルのサブセットです:
class Case(models.Model):
... # primary key is named "id"
class Employee(models.Model):
... # primary key is named "id"
class Report(models.Model):
case = ForeignKey(Case, null=True)
employee = ForeignKey(Employee)
date = DateField()
特定の従業員を考慮して、すべてのケースのリストを作成し、その従業員が最近報告した日時順に並べます。レポートが存在しないケースは、最後にソートする必要があります。同じ日付(NULLを含む)のケースは、さらに基準でソートする必要があります。
これをDjangoORMAPIで表現できますか?もしそうなら、どのように?
疑似SQLでは、私は欲しいと思います
Select Case.*
From Case some-kind-of-join Report
Where report.employee_id = the_given_employee_id
Group by Case.id
Order by Max(Report.date) Desc /* Report-less cases last */, Case.id /* etc. */
Django ORMでこれを行うには、レポートを通じてケースから従業員への多対多の関係を導入する必要がありますか?