【问题标题】:Django: conditional 500 response depending on Accept header?Django:有条件的 500 响应取决于 Accept 标头?
【发布时间】:2012-02-13 14:02:41
【问题描述】:

当视图中发生未处理的异常时,Django 默认返回一个 HTML 错误模板。如果请求具有“接受:'application/json'”标头(但否则返回通常的 HTML),我想返回 JSON 响应。我该怎么做?

【问题讨论】:

    标签: django json


    【解决方案1】:

    在 urls.py 中更改您的 handler500 处理程序:

    handler500 = 'application_name.views.error_500'
    

    定义视图函数:

    def error_500(request):
        # check request header
        return HttpResponse( json.dumps(retval), mimetype='application/json')
    

    【讨论】:

      【解决方案2】:

      您可以指定自己的 500 视图函数,在其中您应该能够相应地修改响应。见https://docs.djangoproject.com/en/dev/topics/http/urls/#handler500

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-06-08
        • 2013-02-07
        • 2014-09-06
        • 2014-10-19
        • 2014-03-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多