我如何使用django返回错误消息? 我在想这样的事情(我正在使用jsonresponse作为我想要做的一个例子):
def test(request):
if request.method == "POST":
if form.is_valid():
form.save
return JsonResponse({"message":"Successfully published"})
else:
'''here i would like to return error something like:'''
return JsonResponse({"success": false, "error": "there was an error"})
else:
return JsonResponse({"success}: false, "error": "Request method is not post"})
我想要实现的是从ajax错误函数在模板中呈现错误消息。像这样:
$("#form").on("submit", function(){
$.ajax({url: "url",
data: ("#form").serialize,
success: function(data){
alert(data.message);
},
error: function(data){
alert(data.error);
}
});
这可能吗?
答案 0 :(得分:7)
您当然可以从Django App返回错误消息。但是您必须定义要返回的错误类型。为此,您必须使用错误代码。
最常见的是找不到页面的404或者服务器错误的500。你也可以有403禁止访问...这取决于你想要治疗的情况。您可以看到wikipedia page以查看可能性。
而不是发送'success':False
使用此:
response = JsonResponse({"error": "there was an error"})
response.status_code = 403 # To announce that the user isn't allowed to publish
return response
使用此jQuery会将答案识别为错误,您将能够管理错误类型。
在JavaScript中管理您的错误:
$("#form").on("submit", function(){
$.ajax({
url: "url",
data: ("#form").serialize,
success: function(data){
alert(data.message);
},
error: function(data){
alert(data.status); // the status code
alert(data.responseJSON.error); // the message
}
});
答案 1 :(得分:1)
试试这个。我认为您的代码中存在语法错误。此外,如果您发布错误消息会更好。我将false
更改为False
您也在代码中省略了表单实例。
def test(request):
if request.method == "POST":
form = MyForm(request.POST)
if form.is_valid():
form.save()
return JsonResponse({"message":"Successfully published"})
else:
'''here i would like to return error something like:'''
return JsonResponse({"success": False, "error": "there was an error"})
else:
return JsonResponse({"success}: False, "error": "Request method is not post"})