Django 如何构建灵活的内联表单集?

Django 如何构建灵活的内联表单集?,django,django-forms,Django,Django Forms,我有一个包含内联表单集的复杂表单,它基本上有一些文本字段和一个文件上传字段。现在,我想使用户能够创建一个新记录,并在同一步骤中附加几个文件 我认为有不同的选项可以实现这一点,也许我可以编写一个jQuery插件来克隆表单集,执行所有验证,并在视图中手动插入内容等等 在我开始之前的要点是:我想知道是否有任何解决方案可以解决这个问题——在我看来,这是一个非常常见的问题 也许有一种解决方法我没有注意到?如果你基本上只想通过“添加另一个”或+链接在表单中添加一个新的部分,一个不错的方法是用纯HTML编写一

我有一个包含内联表单集的复杂表单,它基本上有一些文本字段和一个文件上传字段。现在,我想使用户能够创建一个新记录,并在同一步骤中附加几个文件

我认为有不同的选项可以实现这一点,也许我可以编写一个jQuery插件来克隆表单集,执行所有验证,并在视图中手动插入内容等等

在我开始之前的要点是:我想知道是否有任何解决方案可以解决这个问题——在我看来,这是一个非常常见的问题


也许有一种解决方法我没有注意到?

如果你基本上只想通过“添加另一个”或+链接在表单中添加一个新的部分,一个不错的方法是用纯HTML编写一个哑部分,然后用css隐藏它,并使用cloneNode(true)进行复制。只要不使用ID,您就应该能够用很少的JS代码干净地生成许多副本。

是的,这是可能的,但这只是客户端。我是否必须自己实现所有服务器端功能,或者是否有任何现有的功能可以使用?请参阅此问答:此外,为了回答您对服务器端功能的担忧,上面链接的问答使用stock Django formset方法,这可能不太吸引人,但他们完成了任务。谢谢你的回答,我已经有了一个自己编写的jQuery插件,可以克隆dom节点并更新其中的ID。事实上,我更关心的是服务器端字段集的处理:例如,如果用户提交了一个无效的表单,那么上传到字段集中的所有文件都必须临时保存,并推回到表单中。当然,在我看来,我可以手动完成这项工作,但我会问自己,是否有可能对它进行某种通用功能,以便我可以重用它,我正在寻找最好的开始方式。