【发布时间】:2015-07-08 13:11:30
【问题描述】:
我的 django 模板文件中有一个 ajax 调用:
$(document).ready(function () {
$("button#wdsubmit").click(function(){
$.ajax({
type: "post",
url: "/audit/addwd/",
data: $('form.wddetails').serialize(),
dataType: "json",
success: function(msg){
alert(msg);
alert('Added Successfully');
$("#newwd").modal('hide'); //hide popup
},
error: function(msg){
alert(msg.success);
}
});
});
});
表格:
class WDForm(ModelForm):
class Meta:
model = WDModel
fields = '__all__'
django 中的视图是:
def addwd(request):
if request.method == 'POST':
updated_request = request.POST.copy()
updated_request.update({'updated_by': request.user.username})
form = WDForm(updated_request)
if form.is_valid():
form.save()
response = simplejson.dumps({'success': True})
return HttpResponse(response, content_type="application/json", mimetype='application/json')
else:
response = simplejson.dumps({'error': True})
return HttpResponse(response , content_type="application/json")
每当我进行 Ajax 调用时,它总是返回错误,即使我已发送 Success(表示表单有效且数据已成功推送到数据库)。
我也尝试发送 response={'success':True} 不起作用。
请帮我解决这个问题。
环境细节: Python版本:3.4 姜戈:1.7 视窗操作系统 8
我怀疑这条线“response = simplejson.dumps({'success': success})
"
【问题讨论】:
-
您需要出示您的
form,您的两次尝试都可能导致表单失败。另外,请在if块之后修复您的缩进。 -
@Anzel 表单没有失败,正如我在问题中提到的数据已成功保存到数据库中(这意味着 form.is_valid 为真)
-
那么
success的值是从哪里来的呢?或者你只是错过了字符串周围的引号?您需要显示代码中的实际内容。此外,当您进行 ajax 调用时,检查它也更有意义。 假设你的一些代码是邪恶的