Reputation: 137
I want to create all the field except image field.then, I want to update image from that field. How to do this in create method??? 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)
its my create method how can i update logo_filename
field???
here my models, 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
Upvotes: 1
Views: 1777
Reputation: 3094
After creating organization
, you can do like this way:
image_data = validated_data.pop('logo_filename', None)
if image_data and organization:
organization.logo_filename = image_data
organization.save()
Upvotes: 1