django - django 信号不发送邮件
问题描述
我有一个博客,我想在发布新帖子时向我的订阅者发送电子邮件。我使用了 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 = "mail@cemreacar.com"
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
在项目 settings.py 中更新安装的应用程序如下:
代替
INSTALLED_APPS = (
'...',
'your_app',
)
和
INSTALLED_APPS = (
'...',
'your_app.apps.YourAppConfig',
)
文档链接 - https://docs.djangoproject.com/en/3.0/ref/applications/#django.apps.AppConfig.ready
推荐阅读
- google-cloud-platform - 使用面部识别来识别照片集中有多少个独特的面孔
- spring - 如何在 Redis 会话中使用 Spring Boot 身份验证
- java - 构造函数 PlainTextByLineStream(StringReader) 未定义
- swift - 分离视图控制器的数据不起作用
- r - R正则表达式匹配字符串的开头和结尾,忽略中间
- bash - 在使用 '=~' 的 Bash 测试中如何匹配 '[default]'?
- vba - 在执行当前函数之前检查函数
- php - 我如何使用 Google Analytics Restful 获取访问者数量
- wordpress - WordPress 仪表板和管理栏缺少功能
- objective-c - 为什么在 Xcode 调试器中点击对象时看不到 NSString 值?