通过ajax调用从js文件发送选定的复选框时,我得到aForm.is_valid()
False 。
forms.py :
class A(forms.Form):
PHASE_CHOICES = (("DEV", "DEV"), ("PDT", "PDT"))
phaseList = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple, choices=PHASE_CHOICES, required = True, label='Phases')
js文件:
function getCheckedBoxes(){
var phaseSelect = {};
$.each($("input[name='phaseList']:checked"), function() {
phaseSelect[$(this).val()]=$(this).val();
});
return phaseSelect;
}
function B() {
phaseInfo = getCheckedBoxes();
var aData = {
phaseList: phaseInfo,
ajax: 'C',
};
var aAjaxArgs = {
type: "POST",
url: document.URL,
data: aData,
complete: changeB
};
$.ajax(aAjaxArgs);
}}
views.py :
def D(iRequest):
if iRequest.is_ajax() :
if aForm.is_valid(): //Getting error here always saying phaseList is not matching any choice.
if aPost['ajax'] == 'C':
oData = ""
html文件:
<form action="/D/" method="post">
{% csrf_token %}
<fieldset>
{% for aField in iForm %}
{% if aField.label %}
<div class="FieldForm" >{{aField.label}}</div>
<div class="FieldForm">{{aField}}</div>
</div>
{% endif %}
{% endfor %}
</div>
</fieldset>
<div class="formButton" id="formSubmit">
<input class="small button green" type="button" value="Check" id="id_o" name="osr" onclick="B()"/>
</div>
主要问题是如何在ajax aData变量中发送数据,以便应在views.py中的aForm.is_valid()
条件下读取它。