1

据我所知,即使从 Django 1.5 开始,也没有对嵌套表单集的内置处理 - 即我有任意数量的组,我必须向其中添加任意数量的成员,所有这些都来自同一页面。我目前正在尝试使用Nathan Yergler 的方法来这样做,但它似乎在 Django 1.5 下被破坏了。

该方法的要点是覆盖组表单集的add_fields方法以包含一个inline_formset成员。但是,当我在视图中创建 GroupFormSet 实例时,无论我是否传递了任何组实例,我都会得到一个ValidationError: 'ManagementForm data is missing or has been tampered with'

例如,我认为的一个片段get_context_data

group_inst = models.TemplateFieldGroup.objects.filter(name="Study")[0]
context['group_formset'] = forms.GroupFormSet(instance=group_inst)

有没有人在 Django 1.5 下成功部署了这个方法,或者有没有人有更好的方法来实现同样的目标?

轻微编辑:我的“组”实际上是更大伞的成员:一个模板对象有多个模板字段组,这些模板字段组有多个模板字段。但是,即使将 GroupFormSet() 传递给适当的 Template 实例也不能解决手头的问题。

4

2 回答 2

1

我最近有一个类似的问题。我通过创建一些基于 StackOverflow 答案的自定义表单和表单集类来解决它:Django admin - inline inlines(或者,一次三个模型编辑)

这种方法适用于 Django 1.4,但当我更新到 Django 1.5 时停止工作。为了解决这个问题,我创建了一个 github 存储库:https ://github.com/didorothy/mlrma

README.md 更全面地解释了我的具体情况和目标。我的解决方案专注于 Django 管理员,但可以单独使用。要做到三个以上的级别,它可以扩展。

于 2013-08-07T18:56:31.170 回答
0

所以我的问题的最终解决方案,不幸的是我不能说我完全理解它,可以在 Andrei Petre 的(旧)博客上找到。http://andreipetre.tumblr.com/post/26203496689/nested-formsets-with-django

于 2013-08-23T04:42:38.683 回答