在Django中调用save之前检测模型是否已更改

adv*_*ait 20 python django django-models

我有一个基于远程数据更改(通过HTML scraper)更新的数据库模型.

我想维护一个名为changed- 一个时间戳的字段,表示模型的值最后一次改变的时间(请注意,这与auto_now每次save调用模型的方法时更新这些字段的时间不同).

这是我的问题:

在模型的save方法中,是否有一种直接的方法来检测模型实例的当前值是否与数据库中的值不同?或者,有没有其他方法可以轻松维护changed时间戳?

Don*_*Don 34

如果您通过表单保存实例,则可以进行检查form.has_changed().

  • 如果你想知道哪个字段发生了变化:`form.changed_data` (14认同)

小智 11

http://code.activestate.com/pypm/django-dirtyfields/

跟踪django模型实例上的脏/更改字段.