信号在每次用户登录时触发,而不是 post_save

signals fire up at every user login instead of post_save

我有一个小信号连接到用户模型的post_save。我希望它只在用户创建时发送电子邮件,而不是像在这种形式中那样在登录时发送。

我已尝试使用 if created: 但登录时仍会发送电子邮件。

从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)

仅在创建时触发它。

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)