我的表格如下:
EduFormSet = formset_factory(forms.CandidateDegreeForm, can_delete=True)
edu_formset = EduFormSet(prefix='candidate_degree')
在模板中我正在执行以下操作:
{% if edu_formset %}
{% for form in edu_formset %}
<div class="formset-form" style="visibility: visible;">
<form id="{{ form.prefix }}" method="POST" action="/degree/add/">
<h4>Some Heading Here</h4>
{% csrf_token %}
{% for field in form %}
{% include "form_field.html" %}
{% endfor %}
</form>
<script type="text/javascript">
jQuery(document).ready ( function(){
jQuery('{{ form.prefix }}').validationEngine();
});
</script>
<div class="clearfix"></div>
</div>
{% endfor %}
{{ edu_formset.management_form }}
<div class="button-container right">
<input class="button" type="submit" value="submit" />
</div>
{% endif %}
我不确定为什么但是当我按下提交按钮时没有任何事情发生。
答案 0 :(得分:1)
您的提交按钮不在表单中,因此点击不会触发操作!
以下是the docs向您展示呈现formset的方式:
<form method="post" action="">
<!-- Notice how the formset (below) and thus its submit button
is INSIDE the form (above) -->
{{ formset.management_form }}
<table>
{% for form in formset %}
{{ form }}
{% endfor %}
</table>
</form>
您尝试使用form.prefix
id
创建多个表单。这可以工作,但每个表单都必须使用自己的提交按钮进行渲染。表单集旨在将多个表单组合成一个表单,并通过所述前缀保证值名称的唯一性。它们将以单一形式包含在内并共享任何提交触发器。