JSON中间件无法正常工作

时间:2014-01-06 09:39:49

标签: python django

所以我要做的就是捕获任何抛出的HttpErrors并将它们转换为JSON响应。我创建了这个中间件:

from simple_rest.exceptions import HttpError
import json
from django.http import HttpResponse

class JSONErrorMiddleware():
    def process_exception(self, request, exception):
        print 1111
        if not isinstance(exception, HttpError):
            return HttpResponse(
                json.dumps({
                    'status'  : 'error',
                    'message' : exception.message,
                }),
                status=500,
                content_type='application/json; charset=utf-8',
            )

        return HttpResponse(
            json.dumps({
                'status'  : 'error',
                'message' : exception.message,
            }),
            status=exception.status,
            content_type='application/json; charset=utf-8',
        )

并将其添加到我的设置中:

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'proj.middleware.JSONErrorMiddleware',
)

当我向抛出HttpError的端点发出请求时,不使用中间件。我只是得到一个text / html响应,而不是一个很好的JSON响应。

知道为什么吗?

编辑:自定义装饰器中引发异常?这可能是个问题吗?

0 个答案:

没有答案