Django 捕获自定义500处理程序中的错误文本
在我看来,我犯了一个错误,尤其是这个错误: 视图.pyDjango 捕获自定义500处理程序中的错误文本,django,Django,在我看来,我犯了一个错误,尤其是这个错误: 视图.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 t
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)
我是否可以访问错误消息?
谢谢尝试覆盖
urls.py中的django.conf.urls.defaults.handler500
from django.conf.urls.defaults import *
handler500 = 'path.to.my_custom_500'
或者更好——编写您自己的处理程序并将其放入
编辑:
您还可以向my_custom_500
代码中添加识别异常类型的代码,例如:
import sys;
def my_custom_500(request):
...
type_, value, traceback = sys.exc_info()
...
尝试覆盖urls.py
中的django.conf.urls.defaults.handler500
from django.conf.urls.defaults import *
handler500 = 'path.to.my_custom_500'
或者更好——编写您自己的处理程序并将其放入
编辑:
您还可以向my_custom_500
代码中添加识别异常类型的代码,例如:
import sys;
def my_custom_500(request):
...
type_, value, traceback = sys.exc_info()
...
这不是我的问题。我已经做过了。我需要的是访问触发自定义500的错误消息。添加到您的my_custom_500
功能:import sys;键入,value,traceback=sys.exc_info()
并检查您所做的。是的,我刚刚在某处找到了完全相同的解决方案。。。把它作为答案贴出来,这样我就可以投票了。这不是我的问题。我已经做过了。我需要的是访问触发自定义500的错误消息。添加到您的my_custom_500
功能:import sys;键入,value,traceback=sys.exc_info()
并检查您所做的。是的,我刚刚在某处找到了完全相同的解决方案。。。把它作为答案贴出来,这样我就可以投赞成票了