当视图中发生未处理的异常时,Django默认返回HTML错误模板。我希望返回一个JSON响应,如果请求有一个“Accept:'application / json'”标题(否则返回通常的HTML)。我怎么能这样做?
答案 0 :(得分:2)
在urls.py中更改handler500处理程序:
handler500 = 'application_name.views.error_500'
定义视图功能:
def error_500(request):
# check request header
return HttpResponse( json.dumps(retval), mimetype='application/json')
答案 1 :(得分:1)
您可以指定自己的500视图功能,您可以在其中相应地修改响应。见https://docs.djangoproject.com/en/dev/topics/http/urls/#handler500