django信号不发送邮件

问题描述 投票:0回答:1

我有一个博客,我想在我发表新文章的时候给我的订阅者发邮件。我使用了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')
django django-signals
1个回答
0
投票

你有没有重写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。

© www.soinside.com 2019 - 2024. All rights reserved.