【问题标题】:Update auto_now field in bulk_update更新 bulk_update 中的 auto_now 字段
【发布时间】:2020-09-29 09:16:07
【问题描述】:

我正在使用 Django 2.2,并且我有一个带有 auto_now modification_datetime 字段的模型,我需要在 bulk_update 执行期间/之后更新它,仅适用于真正更新的受影响注册表。

是否可以通过bulk_update 执行仅在受影响的记录上更新auto_now 日期时间模型字段?

【问题讨论】:

  • 你能发布一些代码来准确显示你在做什么吗?

标签: django django-models bulkupdate


【解决方案1】:

不,因为bulk_update() 不会调用save() 方法,也不会在实例上触发pre_savepost_save 信号(通常只产生单个更新查询)。通常也不会回忆起在 Django 中实际更新的实例

此外,正如 auto_now 所记录的那样,它不会在 update()/bulk_update() 上触发,因为它是由 save() 触发的

该字段仅在调用 Model.save() 时自动更新。这 以其他方式更新其他字段时,字段未更新 例如 QuerySet.update(),尽管您可以为 像这样的更新中的字段。

您可以检查哪些实例已手动更新并更新其时间戳或执行某种数据库触发器

【讨论】:

    猜你喜欢
    • 2016-11-02
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-06
    • 2020-11-08
    • 2013-10-22
    相关资源
    最近更新 更多