我为Django创建了一个自定义图像字段,可自动创建缩略图并执行其他操作。
from django.db.models.fields.files import ImageFieldFile
class ImageWithThumbsFieldFile(ImageFieldFile):
def __init__(self, *args, **kwargs):
...
现在,我希望自动连接post_delete信号,只要在模型中定义了这样的字段。我知道在定义模型时如何手动连接post_delete信号。但是,只要使用自定义字段,我就有办法自动执行此操作吗?
答案 0 :(得分:1)
您可以使用contribute_to_class()
方法执行此操作:
class ImageWithThumbsFieldFile(ImageFieldFile):
...
def contribute_to_class(self, cls, name, **kwargs):
super(ImageWithThumbsFieldFile, self).contribute_to_class(
cls, name, **kwargs)
post_delete.connect(on_delete_callback, sender=cls)