DRF-如何在模型序列化程序的创建方法中更新单个字段

DRF-How to update single field in create method of model serializer

我想创建除图像之外的所有字段 field.then,我想从该字段更新图像。如何在创建方法中做到这一点??? serializers.py

def create(self, validated_data):
        loc_id = validated_data.pop("location")["id"]
        currency_id = validated_data.pop("base_currency")["id"]
        try:
            loc_obj = get_object_or_404(Location, id=loc_id)
            validated_data["location"] = loc_obj
            currency_object = get_object_or_404(Currency, id=currency_id)
            validated_data["base_currency"] = currency_object
            image_data = validated_data.pop('logo_filename')
            organization = Organization.objects.create(**validated_data)
            return organization
        except Exception as e:
            raise serializers.ValidationError(e)

这是我的创建方法 我如何更新 logo_filename 字段???

这是我的模特, models.py

def upload_to(instance, filename):
    # return '{filename}'.format(filename=filename)
    print(instance.__dict__)
    return 'organization/{instance}/logo/{filename}'.format(filename=filename,
                                                            instance=instance.pk)


class Organization(models.Model):
    code = models.CharField(max_length=25, null=False, unique=True)
    name = models.CharField(max_length=100, null=False)
    location = models.ForeignKey(Location, on_delete=models.RESTRICT)
    base_currency = models.ForeignKey(Currency, on_delete=models.RESTRICT)
    logo_filename = models.ImageField(_("Image"), upload_to=upload_to, null=True)

    def __str__(self):
        return self.name

创建organization后,您可以这样做:

image_data = validated_data.pop('logo_filename', None)
if image_data and organization:
    organization.logo_filename = image_data
    organization.save()