【问题标题】:Updating an object fires post_save signal更新对象会触发 post_save 信号
【发布时间】:2013-12-14 17:43:55
【问题描述】:

我设置了post_save 信号,以便每次保存新对象时都会触发信号。

问题是即使更新了现有对象,此信号也会被触发。 正如 django 文档中所说,我使用 save() 更新对象,但我不希望在更新时触发信号。

我该如何解决这个问题?

我尝试覆盖 save() 方法,例如 save(force_insert = False, force_update = True),但它不起作用。

【问题讨论】:

    标签: django django-models django-signals


    【解决方案1】:

    这不会阻止信号触发,但您可以在 post_save 信号处理程序中检查 kwargs['created']

    【讨论】:

    • 每次更新对象时都会发出 post_save 信号吗?
    • @user3030969 根据我的经验,是的,但我还没有通过查看源代码来验证它
    • 我检查了,每次保存对象时都会发出信号。你是对的, kwargs['created'] 确定对象是新的还是旧的。谢谢大佬。
    猜你喜欢
    • 1970-01-01
    • 2018-08-09
    • 2012-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    • 1970-01-01
    • 2012-05-31
    相关资源
    最近更新 更多