Как обновить новый файл в поле файла в модели, не удаляя файл из другого поля файла
У меня есть модель, которая содержит 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
введите здесь описание изображения