Django:条件500响应取决于Accept标头?

时间:2012-02-13 14:02:41

标签: django json

当视图中发生未处理的异常时,Django默认返回HTML错误模板。我希望返回一个JSON响应,如果请求有一个“Accept:'application / json'”标题(否则返回通常的HTML)。我怎么能这样做?

2 个答案:

答案 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