Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # MODEL
- def images_directory_path(instance, filename):
- return 'images/client_id_{0}/{1}'.format(instance.client.id, filename)
- class Image(models.Model):
- created = models.DateTimeField(auto_now_add=True)
- updated = models.DateTimeField(auto_now=True)
- client = models.ForeignKey('client.Client', related_name='client_image', on_delete=models.CASCADE)
- image_file = models.ImageField(upload_to=images_directory_path)
- # SERIALIZER
- class ImageSerializer(serializers.ModelSerializer):
- class Meta:
- model = Image
- read_only_fields = ['id', 'created', 'updated']
- exclude = ('client',)
- def update(self, instance, validated_data):
- fields = instance._meta.fields
- exclude = ['id', 'created', 'updated', 'client']
- for field in fields:
- field = field.name.split('.')[-1]
- if field in exclude:
- continue
- setattr(instance, field, validated_data.get(field, getattr(instance, field)))
- instance.save()
- if "client" in self.context.keys():
- validated_data["client"] = self.context["client"]
- if instance.client != validated_data["client"]:
- new_object = Image.objects.create(
- client=validated_data["client"],
- image_file=instance.image_file
- )
- instance.delete()
- instance = new_object
- return instance
- return instance
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement