如果我在DateTimeField上定义auto_now = True
,则每个save()都会更新此字段。但是,当特殊事件发生时,如何更新此字段?
例如:仅当同一模型的某个其他字段已更改其状态时,才更新DateTimeField。当然,我可以在数据库级别定义一个触发器,或捕获pre_save或post_save信号来制作东西。但有没有办法以另一种方式做到这一点?
答案 0 :(得分:1)
您可以安装django-models-utils
并使用它MonitorField
。它是一个DateTimeField子类,用于监视模型上的另一个字段,并在受监视字段发生更改时将其自身更新为当前日期时间。
答案 1 :(得分:0)
您可以使用' update_fields' save()方法的参数:
# Write your logic to check if the fields or field has changed, then:
model.save(update_fields=['field1', 'field2']) # Do not include the DateTimeField if you don't want it updated.