Django返回状态代码400,其中包含来自视图的错误消息

时间:2015-11-01 09:23:24

标签: ajax django

我有一个通过ajax接收表单提交请求的视图。有时它会根据某些条件返回错误的请求,或者在引发异常的情况下。现在,发回简单的HttpResponse(status = 400)很简单。我是否可以使用xhr.responseText发送原因以及我可以访问的原因?

1 个答案:

答案 0 :(得分:5)

如果我理解你的话,你可以在一些背景下返回400:

context = {
   'reason': 'your reason'
}
response = render(request, '400.html', context)
response.status_code = 400
return response

对于使用ajax的情况,您只需返回HttpResponse:

context = {
    'status': '400', 'reason': 'you can access this view only via ajax'  
}
response = HttpResponse(json.dumps(context), content_type='application/json')
response.status_code = 400
return response

并在您的js代码中:

$.ajax({
    // ... 
    // ...
}).fail(function(data){
    var status = data.status;
    var reason = data.reason; 
});