django 模板查看比较权限



我正在尝试检查帐户设置是否视图,并且用户名是超级用户,然后呈现html。 如果没有,则会出现错误 403 ,但是我如何使用模板视图执行此操作

class AccountSettingsView(LoginRequiredMixin, TemplateView):
template_name = 'profile/account-settings.html'
if request.user.is_superuser:
# error 403
else:
template_name
你可以使用UserPassesTestMixin

mixin [Django-doc],然后覆盖test_func(..)方法 [Django-doc]:

from django.contrib.auth.mixins importUserPassesTestMixin
class AccountSettingsView(LoginRequiredMixin,UserPassesTestMixin, TemplateView):
template_name = 'profile/account-settings.html'
def test_func(self):
return self.request.user.is_superuser

您可以重写dispatch方法并在那里检查该条件:

class AccountSettingsView(LoginRequiredMixin, TemplateView):
template_name = 'profile/account-settings.html'
def dispatch(self, request, *args, **kwargs):
if self.request.user.is_superuser:
# raise 403
return super().dispatch(request, *args, **kwargs)

最新更新