正在访问Django 500.html中的异常?

正在访问Django 500.html中的异常?,django,exception,Django,Exception,如何访问500.html中的异常详细信息?您可以子类化django.core.handlers.base.BaseHandler,或者更好的实现之一,如django.core.handlers.wsgi.WSGIHandler,并更改处理未捕获的异常(self、request、resolver、exc\u info)方法。最后一个参数是由sys.exc\u info返回的异常信息。例如,对于WSGI,您可以在WSGI文件中定义自定义处理程序 简单地在URLconf中覆盖handler500是不起

如何访问500.html中的异常详细信息?

您可以子类化
django.core.handlers.base.BaseHandler
,或者更好的实现之一,如
django.core.handlers.wsgi.WSGIHandler
,并更改
处理未捕获的异常(self、request、resolver、exc\u info)
方法。最后一个参数是由
sys.exc\u info
返回的异常信息。例如,对于WSGI,您可以在WSGI文件中定义自定义处理程序


简单地在URLconf中覆盖
handler500
是不起作用的,因为该函数没有收到任何关于实际异常的信息。

您可以将
django.core.handlers.base.BaseHandler
子类化,或者更好的实现方式,如
django.core.handlers.wsgi.WSGIHandler
,并更改
handle\u uncaught\u异常(self、request、resolver、exc\u info)
方法。最后一个参数是由
sys.exc\u info
返回的异常信息。例如,对于WSGI,您可以在WSGI文件中定义自定义处理程序


简单地在URLconf中覆盖handler500将不起作用,因为该函数不会收到任何有关实际异常的信息。

最简单的方法是编写一个覆盖进程异常的中间件


最简单的方法是编写一个覆盖进程异常的中间件


它不起作用((django需要500.html,尽管此中间件已注册并访问blablabla.htmlWhat?您尝试了什么?您收到了什么错误?我刚刚用一些print语句测试了此代码(
print'异常为:%s'%exception
),它起作用。它不起作用((django需要500.html,尽管此中间件已注册并访问blablabla.htmlw您尝试了什么?您收到了什么错误?我刚刚用一些print语句测试了此代码(
print'异常为:%s'%exception
),它可以工作。
class ProcessExceptionMiddleware(object):
    def process_exception(self, request, exception):
        response = direct_to_template(request, "my_500_template", {'exception': exception})
        response.status_code = 500
        return response