PermissionRequiredMixin AccessMixin permission_denied_message

时间:2016-05-03 23:56:49

标签: python django

好的,所以我不知道为什么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'

1 个答案:

答案 0 :(得分:1)

来自documentation

  

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中的模板中可用。

另请注意,您可能并不总是希望公开异常的内容!