Как сохранить данные модели загрузок для пользователя, который вошел в систему, DjangoRestFramework

Я хочу разместить данные {фотографии и подписи} и хочу, чтобы они сохранялись для пользователя, который вошел в систему. Я получаю эту ошибку 'Got a TypeError when calling Uploads.objects.create(). Это может быть связано с тем, что в классе сериализатора есть поле, доступное для записи, которое не является допустимым аргументом для Uploads.objects.create(). Возможно, вам нужно сделать поле доступным только для чтения или переопределить метод UploadsSerializer.create(), чтобы правильно обработать это.'

В serializer.save() я поместил в качестве аргумента user = request.user, но это просто дает мне ошибку, упомянутую выше. Помещение этого аргумента работало в других проектах, но у меня возникают проблемы, и я не понимаю, почему даже с ошибкой.

Serializer.py

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = [ 'username', ]


class ProfileSerializer(serializers.ModelSerializer):
    user = models.OneToOneField(User, on_delete = models.CASCADE, null = False, blank = True)

    class Meta:
        model = Profile
        fields = [ 'first_name', 'last_name', 'phone_number', 'bio', 'profile_picture', 'banner_picture' ]

    def to_representation(self, instance):
        my_fields = {'first_name', 'last_name', 'bio'}
        data = super().to_representation(instance)
        for field in my_fields:
            try:
                if not data[field]:
                    data[field] = ""
            except KeyError:
                pass
        return data

class UploadsSerializer(serializers.ModelSerializer):
    caption = serializers.CharField()
    file = serializers.URLField()
    id = serializers.IntegerField(read_only = True)


    class Meta:
        model = Uploads
        fields = ['id', 'file', 'caption']

Views.py

    elif request.method == 'POST':
        serializer = UploadsSerializer(data = request.data)
        if serializer.is_valid(raise_exception = True):
            serializer.save(user = request.user        //I thought this would save to the user but gives error mentioned above
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

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