Python JSON中间件不工作

Python JSON中间件不工作,python,django,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

所以我要做的是捕获抛出的任何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响应

知道为什么吗


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

我记不起细节,但中间件顺序很重要。您确定中间件激活后不会引发异常吗?@aquavitae我尝试更改中间件的顺序,但没有帮助。它仍然忽略了我的中间件类。我还删除了所有我不需要的中间件。@aquavitae例外情况在我的自定义装饰器中提出。装饰器在哪里,它装饰什么?也许一点代码上下文会有所帮助?大概是在异常到达中间件之前处理了它。你试过通过调试器运行它吗?我假设
print 1111
行从未运行过。。。