我有一个小信号连接到用户模型的post_save。我希望它仅在创建用户时发送电子邮件,而不在登录时发送电子邮件,就像在这种形式中那样。
我尝试过创建它:但仍在登录时发送电子邮件。
从django.db.models.signals导入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)
答案 0 :(得分:1)
仅在创建时触发它。
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)