我有一个博客,我想在我发表新文章的时候给我的订阅者发邮件。我使用了django信号。我的问题是,这个信号不工作。当我尝试django shell时,我可以发送邮件。
这是我的 信号.py 文件。
from django.db.models.signals import post_save
from blog.models import Blog
from django.core.mail import send_mail
from django.dispatch import receiver
@receiver(post_save, sender=Blog)
def new_post_created(sender,**kwargs)
print "Success"
mysubject = "E mail gönderiyorum"
mymessage = "Merhaba, \nYeni yazım az önce yayınlandı. Hemen okumak için linki kullanabilirsin.\n http://www.cemreacar.com/blog/"
mymail = "[email protected]"
send_mail(mysubject,mymessage,mymail,['*****@gmail.com'],'fail_silently=False')
你有没有重写ready方法?如果没有,你必须重写应用程序配置类的ready方法。
在apps.py中会定义应用程序配置类。覆盖ready方法如下
from django.apps import AppConfig
class YourAppConfig(AppConfig):
name = 'your_app'
def ready(self):
import your_app.signal
在project settings.py中,按以下方式更新已安装的应用程序。
替换
INSTALLED_APPS = (
'...',
'your_app',
)
与
INSTALLED_APPS = (
'...',
'your_app.apps.YourAppConfig',
)
文件链接 - https:/docs.djangoproject.comen3.0refapplications#django.app.AppConfig.ready。