Django удалить S3 изображение загружено с помощью настраиваемого поля

Я использую настраиваемое поле для загрузки изображения на s3, используя django 1.9. Я хочу удалить изображение из s3 всякий раз, когда экземпляр модели удаляется. Я пробовал сигнал post_delete с помощью метода ImageField delete(), но так как я использую настраиваемое поле, не могу достичь результата. Любое предложение о том, как этого добиться?

1 ответ

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())
Другие вопросы по тегам