Добавление пользовательского разрешения в представление на основе функций Django Rest Framework
Я пытаюсь написать пользовательское разрешение IsOwner для представления, основанного на функции DRF, которое имеет параметр user_id. Представление выглядит следующим образом:
@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})
за исключением того, что я хочу заменить permissions.IsAuthenticatedOrReadOnly на мое пользовательское разрешение IsOwner.
Я попробовал написать что-то вроде этого:
class IsOwner(permissions.BasePermission):
def has_permission(self, request, view):
return request.user.id == view.user_id
за исключением того, что я не уверен, как получить доступ к свойству user_id из представления. Кто-нибудь знает, как я могу это сделать? Спасибо!
Вы можете получить user_id из view.kwargs.
class IsOwner(permissions.BasePermission):
def has_permission(self, request, view):
return request.user.id == view.kwargs['user_id']
Надеюсь, это может помочь.