向 Django Rest Framework 基于函数的视图添加自定义权限
Adding custom permission to Django Rest Framework Function-Based view
我正在尝试为参数为 user_id
的基于 DRF 函数的视图编写自定义 IsOwner
权限。视图如下:
@api_view(['GET'])
@permission_classes([permissions.IsAuthenticatedOrReadOnly])
def return_credibility(request, user_id):
credibility = utils.get_credibility(user_id)
return Response({'id': user_id, 'credibility': credibility})
除非我想用我的自定义 IsOwner
权限替换 permissions.IsAuthenticatedOrReadOnly
。
我试着写这样的东西:
class IsOwner(permissions.BasePermission):
def has_permission(self, request, view):
return request.user.id == view.user_id
除非我不确定如何从视图访问 user_id 属性。有谁知道我该怎么做?
您可以从 view.kwargs
获得 user_id
。
class IsOwner(permissions.BasePermission):
def has_permission(self, request, view):
return request.user.id == view.kwargs['user_id']
我正在尝试为参数为 user_id
的基于 DRF 函数的视图编写自定义 IsOwner
权限。视图如下:
@api_view(['GET'])
@permission_classes([permissions.IsAuthenticatedOrReadOnly])
def return_credibility(request, user_id):
credibility = utils.get_credibility(user_id)
return Response({'id': user_id, 'credibility': credibility})
除非我想用我的自定义 IsOwner
权限替换 permissions.IsAuthenticatedOrReadOnly
。
我试着写这样的东西:
class IsOwner(permissions.BasePermission):
def has_permission(self, request, view):
return request.user.id == view.user_id
除非我不确定如何从视图访问 user_id 属性。有谁知道我该怎么做?
您可以从 view.kwargs
获得 user_id
。
class IsOwner(permissions.BasePermission):
def has_permission(self, request, view):
return request.user.id == view.kwargs['user_id']