Skip to content Skip to sidebar Skip to footer

Remove Previous Image From Media Folder When Imagefiled Entry Modified In Django

I have a Model with a ImageField. class Photo(models.Model): ---- image = models.ImageField(verbose_name=_('Image'),upload_to='images/category/%Y/%m/%d/', max_lengt

Solution 1:

You can either use django's signals or simply overwrite the save method on your model. I would write a signal. Something like the following (note that this is untested):

from django.db.models.signals import pre_save
from django.dispatch import receiver

class Photo(models.Model):
     image = ...

@receiver(pre_save, sender=Photo)
def delete_old_image(sender, instance, *args, **kwargs):
    if instance.pk:
        existing_image = Photo.objects.get(pk=instance.pk)
        if instance.image and existing_image.image != instance.image:
            existing_image.image.delete(False)

Post a Comment for "Remove Previous Image From Media Folder When Imagefiled Entry Modified In Django"