【发布时间】:2012-02-13 14:02:41
【问题描述】:
当视图中发生未处理的异常时,Django 默认返回一个 HTML 错误模板。如果请求具有“接受:'application/json'”标头(但否则返回通常的 HTML),我想返回 JSON 响应。我该怎么做?
【问题讨论】:
当视图中发生未处理的异常时,Django 默认返回一个 HTML 错误模板。如果请求具有“接受:'application/json'”标头(但否则返回通常的 HTML),我想返回 JSON 响应。我该怎么做?
【问题讨论】:
在 urls.py 中更改您的 handler500 处理程序:
handler500 = 'application_name.views.error_500'
定义视图函数:
def error_500(request):
# check request header
return HttpResponse( json.dumps(retval), mimetype='application/json')
【讨论】:
您可以指定自己的 500 视图函数,在其中您应该能够相应地修改响应。见https://docs.djangoproject.com/en/dev/topics/http/urls/#handler500
【讨论】: