如何使用Django将变量传递给异常中间件?
问题描述:
在django 1.10中,如何将变量传递给中间件异常处理程序?如何使用Django将变量传递给异常中间件?
在下面的示例中,我想访问process_exception()中的传递列表([1,2,3])。
views.py
class my_exception(Exception):
def __init__(self, value):
self.value = value
def __str__(self):
return repr(self.value)
def my_view(request):
...
my_var = [1,2,3] # Want to pass this to exception middleware
raise my_exception(my_var)
middleware.py
from django.utils.deprecation import MiddlewareMixin
class ExceptionMiddleware(MiddlewareMixin):
# Has been added to settings.py middleware list
def process_exception(self, request, exception):
if type(exception) == my_exception:
# How to access my_var here?
...
答
这纯粹是因为exception.value
除了要检查的类相匹配。例外情况会包含您用来创建它的数据。
难道只是'exception.value'吗?也许我错过了一些东西,但如果异常与您正在检查的类匹配,那么它应该有您用来创建它的数据。 – themanatuf
是的,工作:)想要创建一个答案? – user984003
刚刚做了,谢谢! – themanatuf