django сигналы не отправляют почту - PullRequest
0 голосов
/ 02 мая 2020

У меня есть блог, и я хочу отправлять по электронной почте свои подписки, когда я публикую новое сообщение. Я использовал django сигналы. Моя проблема в том, что сигнал не работает. Я могу отправлять почту при попытке django shell.

Это мой файл signal.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')

1 Ответ

0 голосов
/ 03 мая 2020

Вы переопределили готовый метод? Если нет, вам нужно переопределить готовый метод класса конфигурации приложения.

В apps.py будет определен класс конфигурации приложения. Переопределите метод готовности следующим образом

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...