Добавление пользовательского разрешения в представление на основе функций 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']

Надеюсь, это может помочь.

Вернуться на верх