Django 的内联表单
Posted
技术标签:
【中文标题】Django 的内联表单【英文标题】:Django's Inline Forms 【发布时间】:2011-06-12 15:38:29 【问题描述】:我正在尝试使用内联 formSet 创建记录,同时使用普通表单创建记录,其主键 是 内联 formSet 的外键都在同一个 html 页面上。
有意义吗?这就是我的意思:假设我有以下两个模型(显然不是真正的代码,但你明白了):
Class mainModel
Primary Key (custom pk I create)
field1
field2
Class inlineFormModel
autoPK
field1 = ForeignKey(mainModel)
field2
现在,我想为用户创建一个 HTML 页面,以便他们可以在创建多个 inlineFormModel
实例的同时创建一个 mainModel
实例。 mainModel
将是普通表单,而 inlineFormModel
将使用 inlineFormsets。问题是,当我保存所有表单时,没有 foreignKey 链接到内联 formSet 记录,因为它引用的模型仍在创建中(所有内容都保存在同一个视图中)。这有意义吗?
我将如何使用多个 secondModel
实例创建一个新的 mainModel
实例并使用相同的视图函数保存整个批次?
谢谢!
【问题讨论】:
【参考方案1】:这是一种常见的情况,我不知道为什么文档中没有解决:
initial_form = mainModelForm(request.POST)
if initial_form.is_valid():
form= initial_form.save(commit=False)
my_formset = inline_formset(request.POST,instance=form)
if my_formset.is_valid():
form.save()
my_formset.save()
....... .........
# return codes here
【讨论】:
如果我有 3 个 inline_formset,它们都具有与外键相同的 initial_form 的 PK,这有关系吗? 所以在这种情况下,初始表单和表单集都呈现在同一个以上是关于Django 的内联表单的主要内容,如果未能解决你的问题,请参考以下文章