Ajax Django从视图返回状态代码400和错误消息

Ajax Django从视图返回状态代码400和错误消息,ajax,django,Ajax,Django,我有一个通过ajax接收表单提交请求的视图。有时,它会根据某些条件返回错误的请求,或者在引发异常的情况下返回错误的请求。现在,发送回简单的HttpResponse(status=400)非常简单。我可以发送一个原因吗?一个我可以使用xhr.responseText访问的原因吗?如果我理解正确,您可以返回400,并附带一些上下文: context = { 'reason': 'your reason' } response = render(request, '400.html', cont

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

如果我理解正确,您可以返回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; 
});

我喜欢这种以这种方式发送响应的方法。谢谢@doniyor
response=render(请求,'400.html',上下文)response.status\u code=400返回response
这不起作用。当状态代码被传递时,消息不会被传递。