【问题标题】:Django signal received not being called收到的 Django 信号未被调用
【发布时间】:2017-02-06 17:10:05
【问题描述】:

我过去使用过 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')

所以我在控制台中收到“已发送信号...”,但没有收到“已接收信号”。我有一种感觉,我错过了一些简单的东西,但我就是看不到它。

【问题讨论】:

    标签: python django django-signals


    【解决方案1】:

    app1/__init__.py 中添加上述行。它对我有用

    default_app_config = 'app1.apps.DjangoApp1Config'
    

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

    您可以参考this了解更多详情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-15
      相关资源
      最近更新 更多