我正在将我的项目从基于函数的视图转换为基于类的视图。在视图函数中,我可以使用 request.user.is_superuser()
函数检查用户是否是超级用户。我可以通过在 LoginRequiredMixin
类中继承 View
来检查用户是否登录,我想知道是否有任何类似的方法可用于检查用户是否是 View
中的超级用户{1}} 类。我想要一个只有网站超级用户才能访问的 Django 应用。
答案 0 :(得分:2)
您可以创建自己的:
from django.contrib.auth.mixins import LoginRequiredMixin, UserPassesTestMixin
class SuperUserRequiredMixin(LoginRequiredMixin, UserPassesTestMixin):
def test_func(self):
return self.request.user.is_superuser
然后在您的 ClassBasedView 中使用 SuperUserRequiredMixin
而不是使用 LoginRequiredMixin现在您的视图将只允许登录的超级用户。
答案 1 :(得分:0)
他是您尝试完成的工作的示例用例。你需要self.request.user.is_superuser
。
class ExampleClassView(LoginRequiredMixin,TemplateView):
template_name = "core/index.html"
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context["is_super"] = self.request.user.is_superuser
return context