如何在Django中制作主细节模型/屏幕?

时间:2013-03-26 20:02:07

标签: django django-models django-templates

我总是碰到的一件事是如何使用Django实现master-detail应用程序。典型的例子是Invoice和InvoiceLines。

要讨论的事情是:

  • 如何构建用于保存,加载等主模型和详细模型的代码
  • views:文件和模板,详细信息行模板,动态添加方式
  • 自动计算字段(如父行上的总计),此代码在哪里?

修改/添加:

关于自动计算字段,这是我的第一个解决方案,http://pastebin.com/ZGqNnHuC,在模型的保存方法中不是更好吗?

主模型需要来自细节模型的值。 (即首先需要计算每个细节的总数,保存每一行,然后求和并保存主)如何以比调用calculate()方法更多的Django方式制作它?

1 个答案:

答案 0 :(得分:4)

  • 主模型和详细模型是由One-to-Many relationship相关的两个独立模型。要将它们合并到同一表单中,您必须使用模型表单集(更多details here)。
  • 动态添加您可能会考虑的行this answer
  • 同样适用于自动计算字段,您可以在纯javascript中或使用ajax调用“计算视图”(因此代码在模板或视图中,最终调用其他模块,如模型,它真的取决于你在做什么计算)