Django Rest框架:如何使用OperationHolderixin?

Django Rest框架:如何使用OperationHolderixin?,django,django-rest-framework,Django,Django Rest Framework,在Django Rest Frameworksite packages/Rest\u Framework/permissions.py的源代码中,我可以看到OperationHolderMixin类,以及子类和和或和非 文档中没有关于它的内容,我也没有找到用例的示例。有人使用过这些“合成”类吗?我应该在什么时候使用它们?您不必在代码库中直接使用这些类,只需使用逻辑表达式为的类即可 假设您有三个权限类 class PermissionOne(permissions.BasePermission):

在Django Rest Framework
site packages/Rest\u Framework/permissions.py的源代码中,我可以看到
OperationHolderMixin
类,以及子类


文档中没有关于它的内容,我也没有找到用例的示例。有人使用过这些“合成”类吗?我应该在什么时候使用它们?

您不必在代码库中直接使用这些类,只需使用逻辑表达式为的类即可

假设您有三个权限类

class PermissionOne(permissions.BasePermission):
    def has_permission(self, request, view):
        # your logic
        pass


class PermissionTwo(permissions.BasePermission):
    def has_permission(self, request, view):
        # your logic
        pass


class PermissionThree(permissions.BasePermission):
    def has_permission(self, request, view):
        # your logic
        pass
然后,您可以在视图中使用这些类作为

class MyAPIView(APIView):
    permission_classes = [PermissionOne | PermissionTwo | PermissionThree]

注意:DRF支持
&
(和)、
(或)和
~
(非)按位运算符来创建复合权限类。

您不必在代码库中直接使用这些类,只需使用具有逻辑表达式的类即可

假设您有三个权限类

class PermissionOne(permissions.BasePermission):
    def has_permission(self, request, view):
        # your logic
        pass


class PermissionTwo(permissions.BasePermission):
    def has_permission(self, request, view):
        # your logic
        pass


class PermissionThree(permissions.BasePermission):
    def has_permission(self, request, view):
        # your logic
        pass
然后,您可以在视图中使用这些类作为

class MyAPIView(APIView):
    permission_classes = [PermissionOne | PermissionTwo | PermissionThree]

注意:DRF支持
&
(和)、
(或)和
~
(非)按位运算符来创建复合权限类。

您不应该这样做。但如果你足够好奇,你可以点击这个链接。但是如果你足够好奇的话,你可以点击这个链接