【问题标题】:Automatically connect signals to custom Django model fields自动将信号连接到自定义 Django 模型字段
【发布时间】:2015-03-28 09:51:26
【问题描述】:

我为 Django 创建了一个自定义图像字段,它会自动创建缩略图并执行一些其他操作。

from django.db.models.fields.files import ImageFieldFile

class ImageWithThumbsFieldFile(ImageFieldFile):
    def __init__(self, *args, **kwargs):
        ...

现在我想自动在模型中定义这样的字段时连接一个 post_delete 信号。我知道在定义模型时如何手动连接 post_delete 信号。但是我有办法在使用自定义字段时自动执行此操作吗?

【问题讨论】:

    标签: django model signals custom-fields django-signals


    【解决方案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)
    

    【讨论】:

    • 完美!以为一定有这么简单的东西,但是找不到。
    猜你喜欢
    • 1970-01-01
    • 2014-04-02
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 2012-12-11
    • 2015-04-16
    • 2022-01-24
    • 2022-01-07
    相关资源
    最近更新 更多