首页 > 解决方案 > Django检查超级用户是否在基于类的视图中

问题描述

我正在将我的项目从基于函数的视图转换为基于类的视图。在视图函数中,我可以检查用户是否是使用request.user.is_superuser()函数的超级用户。LoginRequiredMixin我可以通过继承类来检查用户是否登录View,我想知道是否有任何类似的方法可用于检查用户是否是View类中的超级用户。我想要一个只有站点的超级用户才能访问的 Django 应用程序。

标签: pythondjango

解决方案


您可以创建自己的:

from django.contrib.auth.mixins import LoginRequiredMixin, UserPassesTestMixin

class SuperUserRequiredMixin(LoginRequiredMixin, UserPassesTestMixin):

    def test_func(self):
        return self.request.user.is_superuser

然后在ClassBasedView中不使用LoginRequiredMixin ,而是使用SuperUserRequiredMixin

现在您的视图将只允许登录的超级用户。


推荐阅读