繁体   English   中英

如何将视图的访问权限限制在 Django 中的超级用户

[英]How can I restrict access to a view to only super users in Django

在我正在 Django 开发的站点上,我想限制对视图的访问,以便只有超级用户可以访问它们。 我可以使用@login_requiredLoginRequiredMixin ,但是我已经有一个普通人的登录系统,这样任何登录用户都可以访问该视图。

我尝试了一些我认为可以将SuperUserRequired作为 mixin 工作的东西,但这显然不起作用。

这必须能够在 CBV 中工作,因为这就是我用于此视图的内容。 这是我要应用此限制的相关视图。

class CreatePostView(LoginRequiredMixin,CreateView):
    redirect_field_name = 'posts/post_detail.html'
    form_class = PostForm
    model = Post
    def form_valid(self,form):
        form.instance.author = self.request.user
        return super().form_valid(form)

谢谢你提供的所有帮助:)

我认为你需要文档中描述的这个 mixin 基本上,它使您有机会检查用户是否具有正确的访问权限。 以下是来自文档的修改代码:

from django.contrib.auth.mixins import UserPassesTestMixin

class MyView(UserPassesTestMixin, View):
    def test_func(self):
        return self.request.user.is_superuser

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM