我想要某种时间戳来更新模型。问题是 mysql 时间戳只有 1 秒的分辨率,所以如果我将 DateTime 与 auto_add_now 一起使用,这对我来说还不够好。
我想过使用浮点字段并在每次更新时将其分配给 time.time() 。这是我使用 QuerySet.update() 进行更新的模型
model MyModel:
last_update = models.FloatField(default=time.time)
然后我会在任何保存之前更新 last_update (我所有的调用都通过中心位置,所以我可以在创建时明确地执行此操作),例如:
m = MyModel(..,last_update=time.time())
或者当我进行批量更新时,
m = MyModel.objects.filter(....).update(last_update_time=time.time())
这种保存浮动和订单的方法有什么问题吗?
澄清一下,我知道带有 auto_now=True 的 DateTimeField 选项,问题是这给了我 1 秒的分辨率,因为它映射到 MYSQL 中的日期时间字段,即 1 秒的分辨率(我使用的是 MYSQL 5.5)