我希望有一些时间表来更新模型。问题是mysql时间戳只有1秒的分辨率,所以如果我将DateTime与auto_add_now一起使用,这对我来说还不够好。
我想过使用float字段并在每次更新时将其分配给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())
这种保存浮动和订单的方法有什么问题吗?
为了澄清,我知道DateTimeField选项有auto_now = True,问题是这给了我1秒的分辨率,因为它被映射到MYSQL中的日期时间字段,这是1秒的分辨率(I&#39 ; m使用MYSQL 5.5)
答案 0 :(得分:1)
from datetime import datetime
class Model(models.Model):
date_created = models.DateTimeField()
date_modified = models.DateTimeField()
def save(self):
if self.date_created == None:
self.date_created = datetime.now()
self.date_modified = datetime.now()
super(Model, self).save()
答案 1 :(得分:1)