Django 具有内置的默认视图,当引发诸如PermissionDenied
、Http404
、等异常时会自动使用这些视图。SuspiciousOperation
这是我喜欢的 Django 的一个方便的功能,但它似乎有一个限制。
我提出了一条异常消息:raise PermissionDenied('You are not an xyz and have no access to foobar')
是否存在包含原始错误处理程序调用的模板(即403.html
)中可用的原始异常实例的上下文变量,以便我可以访问该消息?
如果没有,是否可以使用自定义处理程序(settings.handler403
等)获取原始异常,以便我可以将其注入上下文?
注意:我相信我可以使用 . 创建自定义中间件process_exception
,但如果可能的话,我想避免这种情况,因为我的猜测是我会复制很多现有的 Django 逻辑,并且重用它会更干净。此外,看起来自定义process_exception
会覆盖django.core.handlers.base
其他行为中的登录。仅仅为了将异常信息注入错误模板而重新实现所有这些似乎有点愚蠢。