好的,所以我不知道为什么django会显示" 403 Forbidden"引发PermissionDenied异常时,同时插入了permission_denied_message变量。我想显示自己的自定义消息。不知道到底出了什么问题。这是我的代码
class ProfileFormView(PermissionRequiredMixin, generic.UpdateView):
permission_required = 'shop_buy.change_userprofile'
raise_exception = True
permission_denied_message = 'Permission Denied'
model = UserProfile
fields = ['location', 'gender', 'profile_picture']
template_name_suffix = '_form'
答案 0 :(得分:1)
Django有一个处理403 Forbidden错误的视图......这个视图在你的根模板目录中加载和呈现模板
403.html
,或者如果这个文件不存在,则提供文本“403 Forbidden”,根据RFC 7231#section-6.5.3(HTTP 1.1规范)。
因此默认响应只有两个字:" 403 Forbidden" - 它没有显示异常消息。如果要显示异常(在视图上下文中可用),则需要提供自己的403.html
模板以显示它。像这样的东西会起作用:
<h1>403 Forbidden</h1>
<p>{{ exception }}</p>
请注意,该异常仅在Django 1.9中的模板中可用。
另请注意,您可能并不总是希望公开异常的内容!