这是我的模特
class Profile(models.Model):
activate = models.BooleanField(default=False)
现在我想做的是,只要管理员面板中的某个人确认,就会向该帐户被激活的特定用户发送一封电子邮件。
但我想只在值从false变为true时才发送邮件。如果该值已经为真,我不想发送任何邮件。
尝试使用post save进行此操作,但它会在Profile Model上的每个保存操作后发送电子邮件
答案 0 :(得分:1)
此处代码将执行此操作(使用pre_save signal):
from django.db.models.signals import pre_save
from django.dispatch import receiver
@receiver(pre_save, sender=Profile)
def profile_changed(sender, instance, *args, **kwargs):
if instance.activate:
if not instance.pk:
print "Send email to user here"
else:
activate_was = sender._default_manager.filter(pk=instance.pk)\
.values("activate").get()["activate"]
if activate_was != instance.activate:
print "Send email to user here"