React/Django - ImageField (при отсутствии кодировки какого-либо файла) - Отправленные данные не были файлом. Проверьте тип кодировки на форме

Я хочу не загружать никакое изображение при отправке, но оно выдает ошибку The submitted data was not a file. Check the encoding type on the form. Когда я выбираю файл, он работает нормально.

Как это можно исправить, я также пробовал некоторые методы. Я пытаюсь удалить изображение, когда оно становится null, и установить значение по умолчанию в models

views.py

class ProductViewset(ModelViewSet):
    serializer_class = ProductSerializer
    queryset = Product.objects.all()

    def create(self, request, *args, **kwargs):
        data = format_product_data(request.data.copy())
        serializer = self.get_serializer(data=data)
        serializer.is_valid(raise_exception=True)
        self.perform_create(serializer)
        pprint(serializer.validated_data)
        headers = self.get_success_headers(serializer.data)
        return Response(format_product_response_data(serializer.data), status=201, headers=headers)

serializer.py

class ProductSerializer(ModelSerializer):
    image = serializers.ImageField(max_length=None, use_url=True, allow_empty_file=True)
    attrs = ProductAttrSerializer(many=True, required=False, read_only=False)
    type = serializers.PrimaryKeyRelatedField(read_only=False, required=True, allow_null=False, allow_empty=False, queryset=ProductType.objects.all())
    
    class Meta:
        fields = "__all__"
        model = Product

    def create(self, validated_data):
        attr_list: List[dict] = []
        if 'attrs' in validated_data:
            attrs = validated_data['attrs']
            del validated_data['attrs']
            for attr in attrs:
                attr_serializer = ProductAttrSerializer(data=attr)
                attr_serializer.is_valid(raise_exception=True)
                attr_list.append(attr_serializer.save())
        instance = Product.objects.create(**validated_data)
        instance.attrs.set(attr_list)
        instance.save()
        return instance

models.py

class Product(models.Model):
    number = models.CharField(max_length=20, null=True, unique=True, blank=True, db_column='NO.')
    name = models.CharField(max_length=30, null=True, unique=False, db_column='Name')
    image = models.ImageField(upload_to="product_images", blank=True, null=True, db_column='Image')
    entry_date = models.DateTimeField(auto_now_add=True, db_column='Date', null=True, blank=True)
    last_updated = models.DateTimeField(auto_now=True, db_column='Update_date')
    source_type = models.CharField(max_length=10, blank=False, choices=PRODUCT_TYPES, default="spd")
    type = models.ForeignKey(to=ProductType, on_delete=models.CASCADE, related_name="products", related_query_name="product")
    status = models.CharField(max_length=8, null=False, blank=False, choices=PRODUCT_STATUS_CHOICES, default='act')
    reference = models.CharField(null=True, blank=True, max_length=50, default=None)
    qty = models.IntegerField(null=True, blank=True)
    customer = models.ForeignKey(null=True, blank=True, to="customer.Customer", related_name="products", related_query_name="product", on_delete=models.SET_NULL)

    class Meta:
        db_table = "Product"

    def __str__(self):
        return f"Product :{self.name}" ```
Вернуться на верх