14

每当有新文章添加到站点时,我都会使用 Django 的 post_save 信号向用户发送电子邮件。但是,每当我save()对已创建的文章使用方法时,用户仍然会收到新电子邮件。只有在添加了新条目时才可能收到电子邮件?

提前致谢

4

3 回答 3

31

post_save信号接收一个布尔created参数,该参数指示是否instance已创建保存。

def my_callback(sender, **kwargs):
    if kwargs['created']:
        print('Instance is new')
于 2012-06-18T09:24:35.847 回答
3

看看https://docs.djangoproject.com/en/dev/ref/signals/#django.db.models.signals.post_save

实际上有一个参数与信号“created: A boolean; True if a new record is created”一起传递。

我认为,这应该可以解决问题。

于 2012-06-18T09:24:26.430 回答
0

检查 instance.id 是确定实例是否“新”的好方法。这仅在您使用由数据库自动生成的 id 时才有效。

于 2012-06-18T09:04:05.210 回答