我一直在学习Django并尝试自定义错误页面。但是,要显示这些页面,您必须在设置中设置DEBUG = False,从而阻止显示有关服务器错误的任何信息。因此,我想设置一个自定义500处理程序,该处理程序将显示引发的异常。
我设置了以下错误处理程序:
from django.shortcuts import redirect
from django.http import HttpResponse
def handler404(request,exception):
# make a redirect to homepage
return redirect('cookiecrumbsapp/cookieCrumbs')
def handler500(request):
#handle error messages for debugging - set to obscure error once tested
return HttpResponse("500")
并在我的url文件中添加了适当的定义:
handler404 = 'cookiecrumbs.views.handler404'
handler500 = 'cookiecrumbs.views.handler500'
这些处理程序可以正常工作,但是我找不到一种方法来显示导致服务器上出现500错误的实际异常/错误。我知道在Django的较旧版本(根据this thread,exception参数传递给500处理程序的功能,就像404参数一样,但是该功能已被删除-是否在那里有什么方法可以在新版本中实现类似的功能,以便我可以在页面上显示错误消息?
如果有帮助,Django版本是2.2.7
编辑:This answer提供了很好的解决方案