繁体   English   中英

django formset中的异构形式

[英]Heterogeneous forms in django formset

我有一个Django表格的问题,在我看来应该已经有一个已经编写的解决方案。

我有几个不同的表单,在同一个视图中提交的东西像...(抱歉现在只使用伪代码)..

class Form1():
    #different attributes

class Form2()
    #different attributes   

<html>
  <form>
    {{ 1-instance-Form1 }} 
    {{ 2-instance-Form1 }}
    {{ 1-instance-Form2 }}
    {{ 2-instance-Form2 }}
  </form>
</html>

除此之外,我想让用户能够通过jquery添加一个表单类的表单实例,这样表单可能会变成

<html>
  <form>
    {{ 1-instance-Form1 }}
    {{ 2-instance-Form1 }}
    {{ 1-instance-Form2 }}
    {{ 2-instance-Form2 }}
    {{ 3-instance-Form2 }}
  </form>
</html>

现在在寻找解决这个问题的方法时,我遇到了Django formset的概念,正如文档描述的那样,它是同一Form类的实例的集合。 但是我可以看到formsets也可以处理异构表单:

一些定义改变了

class BaseHeterogenousFormSet(StrAndUnicode):

    def append(form):
    #add one more form to the formset

    def is_valid():
    #run is_valid for each of the forms in the formset

    def clean():
        #run the clean for each of the forms ...

我正在考虑这个问题的方式有什么问题吗?

您可以向同一视图提交多个formset,但是您需要避免名称冲突( https://docs.djangoproject.com/en/1.6/topics/forms/formsets/#using-more-than-one-formset在一个视图

一个formset处理Form1的实例,另一个formset处理Form2的实例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM