我正在尝试检查帐户设置是否视图,并且用户名是超级用户,然后呈现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)