我正在努力设计 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 对象,在第二列中显示所有引用 A 的 B 对象(按 A 分组),在最后一列中显示所有 val 的总和每个 B 引用的 C 对象。所有这些都带有每个 A 对象的总和。以下示例显示了我正在寻找的内容:
A1.name | B1.name [其中 FK 到 A1] | sum(C.val) [其中 FK 到 B1] A1.name | B2.name [其中 FK 到 A1] | sum(C.val) [其中 FK 到 B2] A1.name | 总计 | sum(C.val) [其中 FK 到 Bx(所有 B 具有 FK 到 A1] A2.name | B3.name [其中 FK 到 A2] | sum(C.val) [其中 FK 到 B3] A2.name | 总计 | sum(C.val) [其中 FK 到 Bx(所有具有 FK 到 A2 的 B]
谁能给我一个如何设计这样一个问题的建议(不幸的是,我的代码经常会变得一团糟)?
我应该用适当的方法扩展模型类吗?对视图中的整个表数据进行自定义查询?只需通过管理器获取所有对象并执行模板中的大部分操作?
感谢您的每一个回答。
问候,
卢克。