Как разрешить суперпользователю всем пользователям пройти тест?

Здесь у меня много 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
Вернуться на верх