TypeError: set() принимает 2 позиционных аргумента, но в фреймворке Django rest их было 3

У меня есть апи обновления, в котором я должен сначала удалить файлы изображений, а затем обновить другими новыми файлами изображений. Но когда я вызываю api, возникает вышеуказанная ошибка.

Мои модели:

class Gallery(TimeStampAbstractModel):
    picture = VersatileImageField(
        "Image",
        upload_to=upload_path,
        blank=True,
    )
    updated_at = None

    class Meta:
        ordering = ["created_at"]

class Articles(TimeStampAbstractModel):

    creator = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.SET_NULL,
        null=True,
        related_name="articles",
    )

    title = models.CharField(max_length=255, blank=True)
    tags = TaggableManager()
    image_files = models.ManyToManyField(Gallery, related_name="articles")

    content = models.TextField(blank=True)

    video_content = models.URLField(max_length=255, blank=True)

    post_views = models.IntegerField(default=0)

    unique_visitors = models.ManyToManyField(
        settings.AUTH_USER_MODEL, related_name="article_views"
    )

    launch_date = models.DateTimeField(null=True)

    description = models.CharField(max_length=200, blank=True, default=None, null=True)

    def __str__(self):
        return self.title

Мое мнение:

class ArticlesView(viewsets.ModelViewSet):
    queryset = Articles.objects.all()
    serializer_class = ArticleSerializer
    permission_classes = [IsAdminUser]    

    def update(self, request, *args, **kwargs):

        instance = self.get_object()
        print(instance)
        files = request.FILES.getlist("image_files")

        if files:
            instance.image_files.all().delete()

            for file in files:
                image_content = Gallery.objects.create(picture=file)
                instance.image_files.add(image_content.id)

        partial = False
        if "PATCH" in request.method:
            partial = True

        serializer = self.get_serializer(instance, data=request.data,partial=partial)
        if not serializer.is_valid():
            return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
        serializer.save()

        return Response(
            {
                "message": "Article has been updated.",
                "updated_data": serializer.data,
            },
            status=status.HTTP_200_OK,
        )

Мой сериализатор:

class ArticleSerializer(TaggitSerializer, serializers.ModelSerializer):

    tags = TagListSerializerField(required=False)
    image_files = GallerySerializer(many=True, read_only=True)
    user = serializers.StringRelatedField(source="creator")

    total_shares = serializers.FloatField(read_only=True)
    total_reacts = serializers.FloatField(read_only=True)
    bad_reacts = serializers.FloatField(read_only=True)
    good_reacts = serializers.FloatField(read_only=True)
    informative_reacts = serializers.FloatField(read_only=True)
    launch_date = serializers.DateTimeField(required=True)

    class Meta:
        model = Articles
        fields = [
            "id",
            "user",
            "title",
            "tags",
            "image_files",
            "content",
            "video_content",
            "post_views",
            "launch_date",
            "total_shares",
            "total_reacts",
            "bad_reacts",
            "good_reacts",
            "informative_reacts",
            "description",
        ]

        extra_kwargs = {
            "image_files": {
                "required": False,
            }
        }

    def create(self, validated_data):
        tags = validated_data.pop("tags", None)
        instance = super(ArticleSerializer, self).create(validated_data)
        if tags is not None:
            for tag in tags:
                instance.tags.add(tag)
        instance.save()
        return instance

Здесь я делаю частичное обновление, потому что из фронта может быть получено любое количество полей, это могут быть все поля или только некоторые поля. Но каждый раз я получаю эту ошибку. Код не выдает никаких ошибок (я поставил точки останова) до следующей части, но как только данные передаются в сериализатор, я получаю ошибки

"PATCH" in request.method:
                partial = True

Traceback:

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