django アプリケーションの設計に苦労しています。次のモデルがあるとします。
class A(models.Model):
name = models.CharField(max_length=255)
class B(models.Model):
name = models.CharField(max_length=255)
a = models.ForeignKey(A)
class C(models.Model):
val = models.IntegerField()
b = models.ForeignKey(B)
最初の列にすべての A オブジェクト、2 番目の列に A を参照するすべての B オブジェクト (A でグループ化)、最後の列にすべての val の合計を表示する HTML テーブルを表示するビュー/テンプレートが欲しい各 B に参照される C オブジェクト。各 A オブジェクトの合計を持つすべてのオブジェクト。次の例は、私が探しているものを示しています。
A1.名前 | B1.name [FK から A1 へ] | sum(C.val) [ここで FK から B1] A1.名前 | B2.name [FK から A1 へ] | sum(C.val) [ここで FK から B2] A1.名前 | 合計 | sum(C.val) [どこで FK to Bx (FK to A1 を持つすべての B] A2.名前 | B3.name [FK から A2 へ] | sum(C.val) [ここで FK から B3] A2.名前 | 合計 | sum(C.val) [どこで FK to Bx (FK to A2 を持つすべての B]
このような問題を設計する方法についてアドバイスをくれる人はいますか (残念ながら、私のコードはしばしば混乱してしまいます)。
適切なメソッドでモデル クラスを拡張する必要がありますか? ビュー内のテーブル データ全体に対してカスタム クエリを実行しますか? マネージャーを介してすべてのオブジェクトを取得し、テンプレートでほとんどのことを行うだけですか?
ご回答ありがとうございます。
よろしく、
ルーク。