为什么没有提交这个django formset?

时间:2012-12-19 14:37:24

标签: 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: 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 %}

我不确定为什么但是当我按下提交按钮时没有任何事情发生。

1 个答案:

答案 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创建多个表单。这可以工作,但每个表单都必须使用自己的提交按钮进行渲染。表单集旨在将多个表单组合成一个表单,并通过所述前缀保证值名称的唯一性。它们将以单一形式包含在内并共享任何提交触发器。