如何检查请求的用户是否在 Django Rest Framework 中具有特定的自定义权限?

How to check if a requested user has a specific custom permission in Django Rest Framework?

如果请求的用户具有 permissions.py 中定义的权限,我想检查 True/False 的布尔答案。

更具体地说,我想检查请求的用户是否具有 IsDriver 的权限。有什么可能吗?

class ExampleViewSet(viewsets.ModelViewSet):
    permission_classes = [IsChargingStationOwner |IsDriver | IsReadOnlyStations]
    serializer_class = ExampleSerializer

    def get_queryset(self):
        # get the request user
        requested_user = self.request.user
        if requested_user.is_anonymous :
            print('1')
        elif requested_user .... :
            print('2')

我的问题与 elif 语句有关。

创建继承

的自定义权限class

rest_framework.permissions.BasePermission

检查 DRF 权限文档 here

如果您想在任何方法中再次调用它,您可以使用@gtopal 方法:

elif IsDriver().has_permission(self.request, self):
     print('2')