Django的内联表单

时间:2011-06-12 15:38:29

标签: django views inline-formset

我正在尝试使用内联formSet创建记录,同时使用普通表单创建记录,其主键 内联formSet的外键全部在同一HTML页面上。

有意义吗?这就是我的意思:假设我有以下两个模型(显然不是真正的代码,但你明白了):

Class mainModel
    Primary Key (custom pk I create)
    field1
    field2

Class inlineFormModel
    autoPK
    field1 = ForeignKey(mainModel)
    field2

现在,我想为用户创建一个HTML页面,以便他们可以在创建多个mainModel实例的同时创建inlineFormModel实例。 mainModel将是正常形式,而inlineFormModel将使用inlineFormsets。问题是当我保存所有表单时,没有foreignKey链接到内联formSet记录,因为它所引用的模型仍然被创建(所有内容都保存在同一视图中)。这有意义吗?

我如何创建一个包含多个mainModel实例的新secondModel实例,并使用相同的视图函数保存整个批处理?

谢谢!

1 个答案:

答案 0 :(得分:3)

这是一种常见的情况,我不知道为什么文档中没有解决这个问题:

    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
相关问题