我正在使用Django的post_save信号,只要将新文章添加到网站,就会向用户发送电子邮件。但是,每当我对已创建的文章使用save()
方法时,用户仍会收到新的电子邮件。只有在添加新条目时才能接收电子邮件?
提前致谢
答案 0 :(得分:29)
post_save
信号接收一个布尔created
参数,指示是否创建了保存的instance
。
def my_callback(sender, **kwargs):
if kwargs['created']:
print('Instance is new')
答案 1 :(得分:3)
查看https://docs.djangoproject.com/en/dev/ref/signals/#django.db.models.signals.post_save
实际上有一个参数传递了信号“created:A boolean;如果创建了新记录,则为True”。
我认为,应该这样做。
答案 2 :(得分:0)
检查instance.id是确定实例是否为“new”的好方法。这仅适用于使用数据库自动生成的ID。