我有一个Django应用程序,在主urls.py
我有
handler500 = 'common.view_utils.custom_500'
应该显示我的自定义错误页面。custom_500
的代码如下
def custom_500(request):
logger.error(sys.exc_info())
t = loader.get_template('500.html')
type, value, tb = sys.exc_info()
return HttpResponseServerError(t.render(request, {
'exception_value': value,
'value': type,
'traceback': traceback.format_exception(type, value, tb)
}))
然而,当我试图测试它并从视图类中引发Error
时,Django显示默认的服务器错误发生。请联系管理员。错误页。
我认为如果在代码中提出Error
,那么应该是一个500错误,将被处理,但mu自定义错误处理程序,但显然我错了。
你能告诉我我在这里遗漏了什么吗?
谢谢,
v .
++++++ UPDATE1 +++++++
对不起,我忘了说,我尝试与DEBUG = False
你必须在你的主url .py中添加每一个视图,这些视图将在显示错误时被调用:
handler404 = 'APP_NAME.views.custom_page_not_found_view'
handler500 = 'APP_NAME.views.custom_error_view'
handler403 = 'APP_NAME.views.custom_permission_denied_view'
handler400 = 'APP_NAME.views.custom_bad_request_view'
此外,您可以呈现页面,但必须设置正确的呈现状态,如:
return render(request,'YOUR-PAGE.html',status=404)