django delete s3 image uploaded using custom field

176 Views Asked by At

I am using a custom field to upload image on s3 using django 1.9. I want to delete image from s3 whenever model instance is deleted. I have tried post_delete signal with ImageField's delete() method but since I'm using custom field cannot achieve the result. Any suggestion on how to achieve this?

1

There are 1 best solutions below

1
selimoves On
from django.db.models.signals import pre_delete

.....

pre_delete.connect(delete_image, dispatch_uid="delete_image")

.....

def delete_image(sender, instance, **kwargs):
    for field_name in instance._meta.get_fields():
        try:
            field = getattr(instance, field_name)
        except:
            field = None
        if isinstance(field, your_custom_field):
            your_app_utils.clean_images(field.get_images())