0

我正在使用自定义字段使用 django 1.9 在 s3 上上传图像。每当删除模型实例时,我都想从 s3 中删除图像。我已经使用 ImageField 的 delete() 方法尝试了 post_delete 信号,但是由于我使用的是自定义字段,因此无法达到结果。关于如何实现这一目标的任何建议?

4

1 回答 1

0
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())
于 2018-02-21T21:48:43.047 回答