在我看来的某个地方,我抛出一个错误,特别是这个错误:
views.py
from xmlrpclib import Fault
def some_function(request):
if ....:
return Fault(-1, 'foo')
然后,同样在 views.py 中,我有自定义500处理程序来捕获服务器错误:
def my_custom_500(request):
context = {...}
### Here is where I need to catch `'foo'`
### in order to put it in the context and pass it to the template
render(request, '500.html', context)
无论如何,我可以访问错误消息吗? 感谢
答案 0 :(得分:5)
尝试覆盖django.conf.urls.defaults.handler500
中的urls.py
。
from django.conf.urls.defaults import *
handler500 = 'path.to.my_custom_500'
甚至更好 - 编写自己的处理程序并将其放在LOGGING
settings。
修改强>:
您还可以添加可识别异常类型的my_custom_500
代码,例如:
import sys;
def my_custom_500(request):
...
type_, value, traceback = sys.exc_info()
...