【发布时间】:2015-08-03 03:33:07
【问题描述】:
我有用于信号接收器的单独 python 模块,它被称为 signals.py 并在我的 AppConfig 的 ready() 方法中导入。
在这个模块中,我为特定模型实现了post_save 和post_delete 信号接收器,并通过装饰器注册了它们:
@receiver(post_save, sender=MyModel)
def generate_smth(sender, instance, created, **kwargs):
...
而且效果很好。
但是,当我以相同的方式向signals.py 添加相同信号但来自不同特定型号的接收器时:
@receiver(post_save, sender=AnotherModel)
def generate_smth(sender, instance, created, **kwargs):
...
我的功能停止接收信号。但是,如果我将接收器移动到单独的 python 模块 mymodel_signals.py 和 anothermodel_signals.py 并在 ready() 中导入这两个模块,那么它们都会再次工作。
为什么不能将接收器放在一个模块中?
【问题讨论】: