调试django信号的问题

Mar*_*lke 3 django django-signals django-registration

我在连接django中的信号时遇到问题.我一直在关注http://dmitko.ru/?p=546上提供的教程,并尝试扩展用户注册.

我已经正确设置了django-registration.它工作正常.出于调试目的,我将以下代码放入我的urls.py中:

from registration.signals import user_registered

def log_user_created(sender, user, request, ** kwargs):
  logger.debug("got USER_REGISTERED signal")

if settings.DEBUG:
  logger.debug("registering debug signal listeners")
  user_registered.connect(log_user_created)
else:
  logger.debug("debuging signals not enabled")    
Run Code Online (Sandbox Code Playgroud)

但是永远不会调用log_user_created函数.

我的问题是:如何调试我的应用程序以查看吞下user_registered信号的位置?

注意:我已经检查过我的django-registration版本是否正常工作.我已将我的版本改为上述博客示例应用程序中的版本.它没有改变观察到的行为.

gar*_*ois 6

确保连接到信号的代码和发送信号的代码都使用相同的路径导入.例如,如果您连接信号:

from myapp.registration.signals import user_registered
user_registered.connect(...)
Run Code Online (Sandbox Code Playgroud)

然后,当您发送此信号时,您必须将其导入

from myapp.registration.signals import user_registered
Run Code Online (Sandbox Code Playgroud)

(注意myapp.)而不是:

from registration.signals import user_registered
Run Code Online (Sandbox Code Playgroud)

否则他们将被视为两个不同的信号.