сигналы запускаются при каждом входе пользователя в систему вместо post_save - PullRequest
0 голосов
/ 06 февраля 2019

У меня небольшой сигнал, связанный с post_save пользовательской модели.Я хочу, чтобы он отправлял электронное письмо только при создании пользователя, а не при входе в систему, как в этой форме.

Я пытался с помощью, если создан: но все еще отправляет электронную почту при входе в систему.

из django.db.models.signals import post_save

def save_profile(sender, instance, created, **kwargs):

        print("Signal patched")
        subject = 'New Order Created %s'%instance
        message = 'Order %s created at %s . Please check if needs further settings!'%(instance, datetime.now())
        emailFrom = 'test@test.com'
        emailTo = [settings.EMAIL_HOST_USER]
        send_mail(subject, message, emailFrom, emailTo, fail_silently=True)




post_save.connect(save_profile, sender=Order)

1 Ответ

0 голосов
/ 06 февраля 2019

Запустите его, только если он создан.

def save_profile(sender, instance, created, **kwargs):
    if created:
        print("Signal patched")
        subject = 'New Order Created %s'%instance
        message = 'Order %s created at %s . Please check if needs further settings!'%(instance, datetime.now())
        emailFrom = 'test@test.com'
        emailTo = [settings.EMAIL_HOST_USER]
        send_mail(subject, message, emailFrom, emailTo, fail_silently=True)

И похоже, что он подключен к Order, а не к пользователю:

post_save.connect(save_profile, sender=User)

...