Django“comment_was_flagged”信号

时间:2010-03-30 18:40:25

标签: django django-signals django-comments

这是我第一次使用django信号,我想挂钩评论应用程序提供的“comment_was_flagged”信号,以便在评论被标记时通知我。

这是我的代码,但它似乎不起作用,我错过了什么?

from django.contrib.comments.signals import comment_was_flagged
from django.core.mail import send_mail

def comment_flagged_notification(sender, **kwargs):
  send_mail('testing moderation', 'testing', 'test@localhost', ['myemail@gmail.com',])

comment_was_flagged.connect(comment_flagged_notification)

(我现在只是测试电子邮件,但我确信电子邮件正在正常发送。)

谢谢!

1 个答案:

答案 0 :(得分:4)

我猜你已经把这段代码扔进了signals.py模块或者类似的东西。

您必须确保您的模块代码实际上是在运行时执行的。如果您的模型模块都没有导入信号模块,那么您的信号监听器将无法连接。

从Django的signals documentation

中窃取一个片段
  

...你需要确保   它早期导入的模块   以便信号处理得到   在任何信号需要之前注册   被发送。这使你的应用程序   models.py是个好地方   注册信号处理程序。