Пользовательские разрешения для объектов, принадлежащих пользователю, не работают (django rest framework)

Создание пользовательского разрешения для того, чтобы только пользователь, владеющий экземпляром объекта user, мог обновлять его, выглядит следующим образом

class UserUpdatePermission(BasePermission):
message = 'only users can edit their profile'

def has_permission(self, request, view):
    return request.user.is_authenticated

def has_object_permission(self, request, view, obj):
    if request.method in SAFE_METHODS:
        return True

    request.user == User.objects.get(username=view.kwargs['username'])



@api_view(['POST'])
@permission_classes([UserUpdatePermission])
@parser_classes([FormParser, MultiPartParser])
def UpdateUserProfile(request, username):

    user = User.objects.get(username=username)

    serializer = UpdateUserSerializer(instance=user, data=request.data)

    if serializer.is_valid(raise_exception=True):
        serializer.save()

    return Response(serializer.data)

Вставляя операторы печати в код, я заметил, что вызывается функция has_permission в классе, но не функция has_object_permission. Таким образом, разрешение на уровне объекта не работает. Что я делаю не так?

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