这是我第一次使用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)
(我现在只是测试电子邮件,但我确信电子邮件正在正常发送。)
谢谢!
答案 0 :(得分:4)
我猜你已经把这段代码扔进了signals.py
模块或者类似的东西。
您必须确保您的模块代码实际上是在运行时执行的。如果您的模型模块都没有导入信号模块,那么您的信号监听器将无法连接。
从Django的signals documentation:
中窃取一个片段...你需要确保 它早期导入的模块 以便信号处理得到 在任何信号需要之前注册 被发送。这使你的应用程序 models.py是个好地方 注册信号处理程序。