Django 的内联表单

标签 django view inline-formset

我正在尝试使用内联 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。问题是,当我保存所有表单时,没有外键链接到内联 formSet 记录,因为它引用的模型仍在创建(所有内容都保存在同一 View 中)。这有道理吗?

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

谢谢!

最佳答案

这是一个常见的场景,我不知道为什么文档中没有解决:

    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

关于Django 的内联表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6322826/

相关文章:

python - Django 管理站点使用外键将两个模型合并为 1 个模型

Android动画下拉/向上 View 正确

django - 如何根据当前对象字段值显示不同的内联

django - Django 测试套件的 Postgres 特定性能提示

python - Django-tastypie prepend_urls 中的多个 url

python - 如何从 Django 中的注册表(用户)将 GROUP 分配给用户?

objective-c - Cocoa 合并自定义 View

mysql - 记录未出现在 View 中,但出现在 View 查询结果中

Django 如何覆盖 inlineformset_factory 中的子表单

django - inlineformset_factory 创建新对象并在创建后编辑对象