django - 在 Django 管理中,我怎样才能知道 bool 值第一次被设置为 true

标签 django django-admin save

我有一个模型,其中包含一个表示项目是否批准的 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/

相关文章:

python - 在 django 管理面板中选择图像时,Filebrowser 不会在文件路径中附加斜杠

python - 我怎样才能在模型表单中拥有相当于 django 的管理内联功能?

c# - 类是否应该能够通过 XML 自行保存和加载?

html - 使用 Django 提交表单时,如何使用 html 元素的 CSS 属性值作为输入?

django - 如何在消费者、django channel 2 中创建连续发送数据并安全断开连接的任务?

python - 在 Django 中访问 BASE_DIR 的推荐方式

python - 在 Django 中使用 {% if %} {% else %}

django - 如何在管理中使用 contenttypes 自定义模型的显示?

ios - 无法保存 plist ios

swift - 如何在 Swift 应用程序中将操作链接到文件->保存/文件->打开