我有几个上下文处理器(例如)在admin部分检查是否允许用户的IP地址。如果不是,我想提出一个PermissionDenied(或SuspiciousOperation)异常。
我已经在项目根目录的模板目录下设置了基本模板(与manage.py处于同一级别):400.html,403.html等。
在这些模板中,我使用消息框架捕获用户被拒绝访问时上下文处理器发送的任何消息。
尽管设置
messages.error(request,'You are not allowed to view the admin for this site')
在任何错误模板中,我都无法使用messages变量。
但是,如果我更改代码以便允许我的IP地址,并导航管理页面,则所有消息都可见。
我真正想要做的是在提出异常时传递消息
raise PermissionDenied('some message here')
但这对400模板也不起作用,所以这就是我使用消息框架的原因。
我在这里做错了吗?
非常感谢