在我看来,我的有效函数似乎总是返回 false,即使该帖子似乎正在发送正确的数据(我认为)。我对 django 和 python 很陌生,我使用 Django Docs 作为指南。我也在尝试使用 dajax 中的 django 表单示例来实现我的表单(我已经在同一个项目中成功安装并使用了 dajax)。我的其他 Dajax 方法是 get 方法,我确信它们不会干扰我的帖子。
每次我发帖时,都会出现“表单无效”错误警报,我不确定为什么它没有进入 if 块。
我在这里阅读了类似的问题,并仔细检查了我能想到的所有内容。如果有人能帮助指出问题出在哪里,我将不胜感激。我在下面粘贴所需的代码。
表格.py
class BedSelectForm(forms.Form):
Branch = forms.ModelChoiceField(
label = u'Branch',
queryset = Result.objects.values_list('branch', flat =True).distinct(),
empty_label = 'Not Specified',
widget = forms.Select(attrs = {'onchange' : "Dajaxice.modmap.updatecomboE(Dajax.process, {'optionB':this.value})"})
)
Env = forms.ModelChoiceField(
label = u'Environment',
queryset = Result.objects.values_list('environment', flat =True).distinct(),
empty_label = 'Not Specified',
widget = forms.Select(attrs = {'onchange' : "Dajaxice.modmap.updatecomboD(Dajax.process, {'optionE':this.value})"})
)
Disc = forms.ModelChoiceField(
label = u'Discipline',
queryset = Result.objects.values_list('discipline', flat =True).distinct(),
empty_label = 'Not Specified'
)
模板.html
<form action="" method="post" id = "select_form">
<div style = "color :white" class="field_wrapper">
{{ form.as_p }}
</div>
<input type="button" value="Display Table" onclick="send_form();"/>
</form>
<script type="text/javascript">
function send_form(){
Dajaxice.modmap.dispTable(Dajax.process,{'form':$('#select_form').serialize(true)});
}
</script>
ajax.py
@dajaxice_register
def dispTable(request, form):
dajax = Dajax()
form = BedSelectForm(deserialize_form(form))
if form.is_valid():
dajax.remove_css_class('#select_form input', 'error')
dajax.alert("Form is_valid(), your username is: %s" % form.cleaned_data.get('Branch'))
else:
dajax.remove_css_class('#select_form input', 'error')
for error in form.errors:
dajax.add_css_class('#id_%s' % error, 'error')
dajax.alert("Form is_notvalid()")
return dajax.json()
我的帖子是这样的。。
argv {"form":"Branch=Master&Env=ProdCoursera&Disc=ChemistryMOOC"}