我正在努力設計一個Django應用程序。鑑於以下型號:在桌面設計問題中顯示多個相關的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)
我想的視圖/模板顯示一個HTML表,其中顯示在第一列中所有的A的對象,在第二列中所引用到的所有B對象(由A分組) A和最後一列中每個B都引用的C對象的所有val的總和。對於每個A對象都有一個總和。 下面的例子顯示了我在尋找:
A1.name | B1.name [where FK to A1] | sum(C.val) [where FK to B1] A1.name | B2.name [where FK to A1] | sum(C.val) [where FK to B2] A1.name | Total | sum(C.val) [where FK to Bx (all B that have FK to A1] A2.name | B3.name [where FK to A2] | sum(C.val) [where FK to B3] A2.name | Total | sum(C.val) [where FK to Bx (all B that have FK to A2]
誰能給我一個建議如何設計這樣的問題(不幸的是,我的代碼往往在相當混亂結束了)?
我應該用合適的方法擴展模型類嗎?爲視圖中的整個表數據執行自定義查詢?只需通過經理獲取所有對象並完成模板中的大部分工作?
感謝您的每一個答案。
Regards,
Luke。
謝謝,這看起來比我想出來的要乾淨得多,但是這隻適用於Django v1.1及更高版本,對嗎? – Lukas 2009-02-11 13:22:25