Как разрешить суперпользователю всем пользователям пройти тест?
Здесь у меня много UserPassesTest и в этих тестах я хочу автоматически разрешить суперпользователей. Здесь я должен сделать self.request.user.is_superuser
в каждом классе. Я не хочу писать это в каждом классе. Как я могу это сделать?
class Permission1(UsersPassesTestMixin):
def test_func(self):
some_condition = True
return self.request.user.is_superuser or some_condition
class Permission2(UsersPassesTestMixin):
def test_func(self):
some_condition = True
return self.request.user.is_superuser or some_condition
class Permission3(UsersPassesTestMixin):
def test_func(self):
some_condition = True
return self.request.user.is_superuser or some_condition
Вы можете создать один базовый класс, который разрешает только суперпользователей, а затем использовать наследование для других классов:
class BasePermission(UsersPassesTestMixin):
def test_func(self):
return self.request.user.is_superuser
class OtherPermission(BasePermission):
def test_func(self):
some_condition = True
return super().test_func() or some_condition