2016-09-28 2 views
0

J'ai utilisé des signaux Django dans le passé. Je travaille maintenant sur une application 1.10, et pour une raison quelconque je ne peux pas appeler mon récepteur.Le signal Django reçu n'est pas appelé

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') 

Donc, je reçois le "Signal envoyé ..." dans la console, mais pas le "Signal reçu". J'ai l'impression qu'il me manque quelque chose de simple, mais je ne peux pas le voir.

Répondre

1

Dans app1/__inti__.py ajoutez la ligne mentionnée. il a travaillé pour moi

default_app_config = 'app1.apps.DjangoApp1Config' 

Note: Les APP1/__ morceaux init__.py ne sont pas nécessaires si vous êtes déjà référence à votre AppConfig dans les paramètres INSTALLED_APPS.

Vous pouvez vous référer au document this doc pour plus de détails.