如何将对视图的访问限制为仅 Django 中的超级用户
How can I restrict access to a view to only super users in Django
在我用 Django 开发的网站上,我想限制对视图的访问,以便只有超级用户才能访问它们。我可以使用 @login_required
或 LoginRequiredMixin
,但是我已经有一个普通人的登录系统,这样任何登录的用户都可以访问该视图。
我已经尝试了一些我认为 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)
感谢您提供的任何帮助:)
我认为您需要 this mixin 文档中的描述。基本上,它让您有机会检查用户是否拥有正确的访问权限。下面也是来自文档的修改代码:
from django.contrib.auth.mixins import UserPassesTestMixin
class MyView(UserPassesTestMixin, View):
def test_func(self):
return self.request.user.is_superuser
在我用 Django 开发的网站上,我想限制对视图的访问,以便只有超级用户才能访问它们。我可以使用 @login_required
或 LoginRequiredMixin
,但是我已经有一个普通人的登录系统,这样任何登录的用户都可以访问该视图。
我已经尝试了一些我认为 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)
感谢您提供的任何帮助:)
我认为您需要 this mixin 文档中的描述。基本上,它让您有机会检查用户是否拥有正确的访问权限。下面也是来自文档的修改代码:
from django.contrib.auth.mixins import UserPassesTestMixin
class MyView(UserPassesTestMixin, View):
def test_func(self):
return self.request.user.is_superuser