0

我有一个表单集如下:

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 %}

我不知道为什么,但是当我点击提交按钮时什么都没有发生。

4

1 回答 1

1

您的提交按钮不在表单内,因此单击不会触发该操作!

以下是文档向您展示呈现表单集的方式:

<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.prefixfor创建多个表单id。这可以工作,但每个表单都必须使用自己的提交按钮呈现。表单集旨在将多种表单合并为一个,并通过所述前缀保证值名称的唯一性。它们将包含在单个表单中并共享任何提交触发器。

于 2012-12-19T14:41:46.233 回答