Javascript 如何使用2个表单集并保存它们(POST方法问题)

Javascript 如何使用2个表单集并保存它们(POST方法问题),javascript,jquery,django,forms,validation,Javascript,Jquery,Django,Forms,Validation,就是这样,我在一个django模板中有两个表单集,为了验证表单集,django使用管理数据验证表单集,如下所示: 'form-TOTAL_FORMS': '1', 'form-INITIAL_FORMS': '0', 'form-MAX_NUM_FORMS': '', 但是当我想同时发布两个表单集时,它们需要两个不同的验证数据,因为,例如,我的第一个表单集在我提交时有一个表单,第二个表单集有两个表单,所以第一个表单需要像上面一样的数据,而第二个表单需要两个“TOTAL_forms”值,但是po

就是这样,我在一个django模板中有两个表单集,为了验证表单集,django使用管理数据验证表单集,如下所示:

'form-TOTAL_FORMS': '1',
'form-INITIAL_FORMS': '0',
'form-MAX_NUM_FORMS': '',
但是当我想同时发布两个表单集时,它们需要两个不同的验证数据,因为,例如,我的第一个表单集在我提交时有一个表单,第二个表单集有两个表单,所以第一个表单需要像上面一样的数据,而第二个表单需要两个“TOTAL_forms”值,但是post只发送了一个验证数据,因此只有一个表单集有效,而另一个表单集无效。如果两个表单集中的表单数量相同(第一个表单包含一个表单,第二个表单包含一个表单),则它们通过验证,因为管理数据对这两个表单都有效

我的模板如下

{% extends 'prescription_menu.html' %}
{% load bootstrap3 %}
{% load crispy_forms_tags %}
{% block css %}
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}site/css/select2.css"/>
{% endblock %}

{% block title %}Physicians{% endblock title %}

% block container %}
{% csrf_token %}

<div class="row">
    <div class="col-md-offset-2 col-md-8">

            {% crispy person_form  %}
            {% crispy employee_form  %}
            {% crispy physician_form %}
            {% crispy address_form %}
            {% crispy phone_form %}
        <form id="otherForm" method="POST">
            <legend>Specialties</legend>
            {{ spec_formset.management_form }}
            {{ ac_de_formset.management_form }}
            {% for specialty, degree in SDU %}
                    {% crispy specialty helper %}
                    {% crispy degree helper %}
                <legend></legend>
            {% endfor %}
        </form>
        <form id="emailsForm" method="POST">
            {{ em_formset.management_form }}
            {% for email in em_formset %}
                {% crispy email helper %}
            {% endfor %}
        </form>




        <input type="button" name="Save" value="Save" class="btn btn-primary" id="submit-id-save" onclick="submitForms()">
    </div>
</div>
{% endblock container %}


{% block javascript %}
<script>
submitForms = function(){
    document.getElementById("otherForm").submit();
    document.getElementById("emailsForm").submit();
}
</script>
{% endblock javascript %}
{%extends'处方\菜单.html%}
{%loadbootstrap3%}
{%load crispy_forms_tags%}
{%block-css%}
{%endblock%}
{%block title%}医生{%endblock title%}
%块容器%}
{%csrf_令牌%}
{%crispy person\u form%}
{%crispy employee_form%}
{%crispy\u form%}
{%crispy address_form%}
{%crispy phone_form%}
特产
{{spec_formset.management_form}}
{{ac_de_formset.management_form}
{%专业,SDU学位%}
{%crispy Speciality helper%}
{%crispy-degree-helper%}
{%endfor%}
{{em_formset.management_form}
{em_formset%中的电子邮件为%0}
{%crispy电子邮件助手%}
{%endfor%}
{%endblock容器%}
{%block javascript%}
submitForms=函数(){
document.getElementById(“其他形式”).submit();
document.getElementById(“emailsForm”).submit();
}
{%endblock javascript%}

在视图中构造表单集时,使用
prefix
参数使两个表单集不共享名称空间,例如:

spec_formset = SomeFormsetClass(prefix="spec")
ac_de_formset = SomeOtherFormsetClass(prefix="ac_de")

在视图中构造表单集时,请使用
prefix
参数使两个表单集不共享名称空间,例如:

spec_formset = SomeFormsetClass(prefix="spec")
ac_de_formset = SomeOtherFormsetClass(prefix="ac_de")
他们有全部的细节