我正在将我的项目从基于函数的视图转换为基于类的视图。在视图函数中,我可以使用request.user.is_superuser()
函数来检查用户是否是超级用户。我可以通过继承LoginRequiredMixin
在View
类中检查用户是否已登录,我想知道是否有类似的方法可以用于在View
类中检查用户是否是超级用户。我希望创建一个仅由站点超级用户访问的Django应用程序。
您可以创建自己的:
from django.contrib.auth.mixins import LoginRequiredMixin, UserPassesTestMixin
class SuperUserRequiredMixin(LoginRequiredMixin, UserPassesTestMixin):
def test_func(self):
return self.request.user.is_superuser
现在,您可以使用SuperUserRequiredMixin而不是在ClassBasedView中使用LoginRequiredMixin
现在您的视图只允许已登录的超级用户。
他是你所要实现的示例用例。你需要使用 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