为什么不提交此django表单集?
我的表格如下:为什么不提交此django表单集?,django,submit,formset,Django,Submit,Formset,我的表格如下: 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
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 %}
{%if edu_formset%}
{edu_formset%中的表单为%s}
有些人来了
{%csrf_令牌%}
{%形式的字段为%}
{%include“form_field.html”%}
{%endfor%}
jQuery(文档).ready(函数(){
jQuery({form.prefix}}').validationEngine();
});
{%endfor%}
{{edu_formset.management_form}
{%endif%}
我不知道为什么,但当我点击“提交”按钮时,实际上什么也没有发生。您的“提交”按钮不在表单中,因此该操作不会由单击触发 以下是演示如何渲染表单集:
<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>
{{formset.management_form}
{formset%中表单的%s}
{{form}}
{%endfor%}
您尝试使用
id
的form.prefix
创建多个表单。这可能可行,但每个表单都必须使用自己的提交按钮呈现。表单集被设计成将多个表单组合成一个表单,并通过所述前缀保证值名称的唯一性。它们将被封装在一个单独的表单中,并共享任何提交触发器。python有可用的stacktrace吗?您是否尝试删除validationEngine并让django执行表单验证?是的,您应该这样做。@SamueleMattiuzzo没有stacktrace,提交函数由于某种原因根本没有被触发。我还尝试删除验证引擎,但没有任何帮助。我不想提交一份表单。我想提交表单集中的所有表单。我不知道表单集,只是检查了文档。我看到他们将表单集放在一个html表单中,这会让我坚持我的答案…这意味着我应该将所有表单都放在表单元素中?在这里发布文档是不够的,因为他们不清楚如何提交表单,因此提出了这个问题。问题在第一行得到了回答。复制粘贴只是一个最小的说明。我将为您添加一条评论。