在django中保存同一表单的多个实例

在django中保存同一表单的多个实例,django,forms,model,save,multiple-instances,Django,Forms,Model,Save,Multiple Instances,在“我的模板”中,用户可以添加(使用“添加”按钮:)同一表单的另一个实例(空一个ofc),但当我单击“提交”(保存)时,只保存最后一个输入的实例。 views.py: def form_valid(self, form): self.object = form.save() return HttpResponseRedirect(self.get_success_url()) 模板: <form action="{{ action }}" class="f

在“我的模板”中,用户可以添加(使用“添加”按钮:)同一表单的另一个实例(空一个ofc),但当我单击“提交”(保存)时,只保存最后一个输入的实例。 views.py:

def form_valid(self, form):
        self.object = form.save()
        return HttpResponseRedirect(self.get_success_url())
模板:

<form action="{{ action }}" class="form-horizontal form-inline" method="post" enctype="multipart/form-data">

  {% csrf_token %}

{% if object.id %}
  <legend>Edit Object2</legend>
{% else %}
  <legend>Add Object2</legend>
{% endif %}

  {{ form }}

  <div class="objects2">
      {% for objects2_form in form %}
        <div id="objects2-{{ forloop.counter0 }}">


        </div>
      {% endfor %}
  </div>

 <div class="form-actions">
   <a href="#" id="add-object2" class="btn btn-info add-object2" >Add object2</a>
   <button type="submit" class="btn btn-primary">Submit</button>
 </div>
</form>

所以只剩下一件事。。如何显示空表单??(不使用formset)

表单数据标记的
名称
属性将重复。因此,例如,最后一个
将用相同的
name=“firstname”
名称覆盖前面的所有字段

实际上,没有任何内置方法可以让相同的表单字段在同一个
DOM元素中呈现两次

我将把
forms.Form
实例呈现到不同的
元素中,并加入一个submit
,它调用Javascript来提交所有现有的
对象

这将是最干净的方式,尤其是对于服务器端机型

因此,在加载时,您可以简单地选择空表单DOM元素并复制它。然后,当用户选择添加表单的另一个实例时,您可以使用该副本作为模板向页面添加另一个表单。通过这种方式,您可以拥有任意数量的相同表单,而无需额外工作

然后,当用户提交表单时,只需选择所有
DOM元素,并在每个元素上调用.sumbit()。您的服务器将只看到常规的
表单。表单提交的实例

object2 = object2Model.objects.all()
        return  render_to_response('xxx.html', 
                          {'form': form, 'object2': object2}, context_instance = RequestContext(self.request))