我有一个模型,其中包含一个表示项目是否批准的 bool 字段。 我想在选中该框后发送电子邮件。
我了解如何覆盖保存方法并发送电子邮件(如果为真),但这将在每次保存时发送电子邮件。
由于我只想发送一次电子邮件,有没有办法仅在第一次检查 bool 值是否为真?
谢谢
最佳答案
我所做的是在保存之前获取数据库中的元素,并将其与之后的内容进行比较。
def save(self):
# Only when we update an element. Not when we create it
if self.pk:
# We get the old values of the model
old = Model.objects.get(pk=self.pk)
# If it's approved and it wasn't before
if self.approved == True and old.approved == False:
send_mail(...)
super(Model, self).save()
因此,只有当对象从未批准变为已批准时,才会发送电子邮件。
关于django - 在 Django 管理中,我怎样才能知道 bool 值第一次被设置为 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1680084/