Django Rest框架:如何使用OperationHolderixin?
在Django Rest FrameworkDjango Rest框架:如何使用OperationHolderixin?,django,django-rest-framework,Django,Django Rest Framework,在Django Rest Frameworksite packages/Rest\u Framework/permissions.py的源代码中,我可以看到OperationHolderMixin类,以及子类和和或和非 文档中没有关于它的内容,我也没有找到用例的示例。有人使用过这些“合成”类吗?我应该在什么时候使用它们?您不必在代码库中直接使用这些类,只需使用逻辑表达式为的类即可 假设您有三个权限类 class PermissionOne(permissions.BasePermission):
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支持&
(和)、
(或)和~
(非)按位运算符来创建复合权限类。您不应该这样做。但如果你足够好奇,你可以点击这个链接。但是如果你足够好奇的话,你可以点击这个链接