如何在Django中正确显示自定义的异常消息403错误?
在我的注册视图中,我正在使用:
class SignUpView(LoginRequiredMixin, PermissionRequiredMixin, CreateView):
login_url = 'error_403'
# ....
# ...
permission_denied_message = 'You are not allowed this transaction!! Ha Ha!!'
# raise PermissionDenied() # ('permission_denied_message')
raise_exception = True
字符串
现在如何显示消息(“permission_denied_message
“?)在我的自定义 403.html 中?
这是我的函数来呈现错误页:
def error_403(request, exception):
data = {}
add_user = 'add_user'
data = {'perm': add_user}
return render(request, '403.html', data)
型
我已经经历了很多关于这个主题的事情(包括那些关于SO的),但是不能成功地显示错误消息(除了我在“403.html”中放置的静态消息)。我在模板中使用了{{ exception}}
,但没有显示任何内容(除了我已经拥有的静态消息)。
1.如何在自定义403页面中显示permission_denied_message
?
2.目前,我正在手动更新函数error_403
中的dict data{}
中的一些原始数据,这些数据在403错误页面上呈现。dict的正确用法是什么?
2条答案
按热度按时间x7yiwoj41#
你可以使用django消息框架来实现这一点。这允许您添加要发送到模板的自定义消息。你需要从django.contrib导入它。下面是向模板发送错误消息的代码。
字符串
在您的模板中,您可以检查是否有错误消息,然后显示它们
型
ffdz8vbo2#
我和你有同样的问题,我一直找不到任何简单明了的方法。
我深入研究了官方的Django文档和Django代码。
答案很简单:
1/尽可能简单地定义视图,只添加mixin:
字符串
2/在应用模板文件夹中创建文件
my_app/template/403.html
,如下所示:型
一切都神奇地运转起来!