【发布时间】:2018-08-18 12:36:41
【问题描述】:
我想实现一个行版本号,该版本号在表行更新时递增。
我正在使用 PostgreSQL。
基本上,我希望该字段的行为类似于以下 updated_at 时间戳字段:
updated_at = models.DateTimeField(auto_now=True)
除了不更新当前时间,我想自动增加行的当前字段值。因此,如果该行有version=1 并且我对该行进行了更新,它将自动将该行增加到version=2。
我知道我可以通过覆盖模型save() 方法来实现这一点,但我想知道是否有办法在数据库级别(最好是通过 Django ORM)实现这一点,以便它适用于任何数据库访问脚本/查询。
【问题讨论】:
-
您几乎可以在每个数据库中编写更新触发器。它不涉及 Django。
-
你知道像
models.DateTimeField(auto_now=True)这样的字段在执行YourModel.objects.filter().update(some_field=some_new_value)这样的操作时不会被更新吗?你还好吗?
标签: django postgresql