收到的Django信号未被调用

时间:2016-09-28 15:52:39

标签: python django django-signals

我过去曾使用过Django信号。我现在正在研究1.10应用程序,由于某种原因,我无法调用接收器。

APP1 / signals.py

from django.dispatch import Signal
list_member_updated = Signal(providing_args=['list_member_id',])

APP1 / models.py

print('Dispatching signal...')
list_member_updated.send(self.__class__, list_member_id=list_member.id)

APP1 / apps.py

class DjangoApp1Config(AppConfig):
    name = 'app1'

    def ready(self):
        import app1.signals

APP2 / util.py

from django.dispatch import receiver
from app1.signals import list_member_updated

@receiver(list_member_updated)
def handle_member_updated(sender, **kwargs):
    print('Received signal')

所以我在控制台中得到“Signal dispatched ...”,但不是“Received signal”。我有一种感觉,我错过了一些简单的东西,但我只是看不到它。

1 个答案:

答案 0 :(得分:2)

app1 / __ init __。py 中添加上述行。它对我有用

default_app_config = 'app1.apps.DjangoApp1Config'

注意:如果您已在 INSTALLED_APPS 设置中引用AppConfig,则不需要app1 / __ init__.py位。

您可以参考this了解详情。