Как обновить новый файл в поле файла в модели, не удаляя файл из другого поля файла

У меня есть модель, которая содержит 3 поля файла вместе с другими полями, как показано ниже.

class Feature(models.Model):
    Migration_TypeId = models.CharField(max_length=50)
    Version_Id = models.SmallIntegerField(default=0)
    Object_Type = models.CharField(max_length=50)
    Feature_Id = models.BigAutoField(primary_key=True)
    Feature_Name = models.CharField(max_length=100)
    Source_FeatureDescription = models.TextField()
    Source_Code = models.TextField()
    Source_Attachment = models.FileField(upload_to='media/', blank=True, null=True)
    Conversion_Description = models.TextField()
    Conversion_Code = models.TextField()
    Conversion_Attachment = models.FileField(upload_to='media/', blank=True, null=True)
    Target_FeatureDescription = models.TextField()
    Target_Expected_Output = models.TextField()
    Target_ActualCode = models.TextField()
    Target_Attachment = models.FileField(upload_to='media/', blank=True, null=True)

    def save(self, *args, **kwargs):
        self.Version_Id = self.Version_Id + 1
        super().save(*args, **kwargs)

Я пытаюсь обновить запись модели вместе с файловыми полями, но когда я пытаюсь обновить любое из файловых полей, другие файлы файловых полей обновляются как нулевые во время обновления. Пожалуйста, сообщите мне, как не потерять файлы других файловых полей модели.

serializers.py

class commonSerializer(serializers.ModelSerializer):
    class Meta:
        model = Feature
        fields = '__all__'
    def create(self, validated_data):
        abc = Feature.objects.create(**validated_data)
        return abc

    def update(self, instance, validated_data):
        instance.Migration_TypeId = validated_data.get('Migration_TypeId', instance.Migration_TypeId)
        instance.Object_Type = validated_data.get('Object_Type', instance.Object_Type)
        instance.Feature_Name = validated_data.get('Feature_Name', instance.Feature_Name)
        instance.Source_FeatureDescription = validated_data.get('Source_FeatureDescription', instance.Source_FeatureDescription)
        instance.Source_Code = validated_data.get('Source_Code', instance.Source_Code)
        instance.Conversion_Description = validated_data.get('Conversion_Description', instance.Conversion_Description)
        instance.Conversion_Code = validated_data.get('Conversion_Code', instance.Conversion_Code)
        instance.Target_FeatureDescription = validated_data.get('Target_FeatureDescription', instance.Target_FeatureDescription)
        instance.Target_Expected_Output = validated_data.get('Target_Expected_Output', instance.Target_Expected_Output)
        instance.Target_ActualCode = validated_data.get('Target_ActualCode', instance.Target_ActualCode)
        instance.Source_Attachment = validated_data.get('Source_Attachment', instance.Source_Attachment)
        instance.Conversion_Attachment = validated_data.get('Conversion_Attachment', instance.Conversion_Attachment)
        instance.Target_Attachment = validated_data.get('Target_Attachment', instance.Target_Attachment)
        instance.save()

views.py
class Featureupdate(generics.RetrieveUpdateAPIView):
        parser_classes = (MultiPartParser, FormParser, JSONParser)
        queryset = Feature.objects.all()
        # queryset = Feature.objects.prefetch_related('upload_files').all()
        # serializer_class = PostSerializer
        # serializer_class = FeatureSerializer
        serializer_class = commonSerializer

введите здесь описание изображения

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