Django: HTTPResponse в JSONResponse с обратным прослеживанием

Я работаю над промежуточным ПО, где мне нужно преобразовать HTTPResponse (например: 500 internal error) в JSONResponse, как показано ниже

{
"error":"some error string",
"traceback":"complete traceback of exception"
}

Может кто-нибудь подсказать мне, как я могу этого добиться?

Мы можем использовать EXCEPTION_HANDLER в REST для этой работы.


REST_FRAMEWORK = 
  {
    'EXCEPTION_HANDLER': 'core.middlewares.custom_exception_handler'
  }

def custom_exception_handler(exc, context):
    response = exception_handler(exc, context)
    if not response:
        response_data = dict()
        exc_tb = tb.format_exc()
        response_data['status'] = 'failed'
        response_data['code'] = 500
        response_data['errors'] = [{'server_error': str(exc)}]
        response_data['traceback'] = exc_tb
        return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR, data=response_data)
    return response
Вернуться на верх