我在我的Django模板文件中的Ajax調用爲: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調用,它總是返回錯誤,即使我發送了成功(意味着表單有效並且數據被成功推送到數據庫)。
我也嘗試發送response = {'success':True}不起作用。
請幫我解決這個問題。
環境細節: Python的優化版本:3.4 Django的:1.7 Windows操作系統8
我在這一行懷疑 「response = simplejson.dumps({'success': success})
」
您需要顯示您的「表單」,表單可能會失敗。另外,請在if if塊後修正縮進。 – Anzel
@Anzel表單沒有失敗,正如我在問題中提到的那樣,數據已成功保存到數據庫中(這意味着form.is_valid爲真) – Galaxy
那麼'success'值是什麼來自?或者你錯過了字符串的引號?您需要顯示代碼中的實際內容。同樣,當你在做Ajax調用時,檢查它也更有意義。 **假設**你的一些代碼正在工作是邪惡的 – Anzel