Django - 触发auto_now字段更改

时间:2014-06-02 18:51:18

标签: django django-models

我想知道如何重新保存对象只是为了更新auto_now字段。

着名的是,我想到了这段代码

obj = MyModel.objects.get(id=someid)
obj.save()

但如果我要更新许多对象怎么办?或者更好的是,更新对象auto_now字段

的最佳方法是什么

2 个答案:

答案 0 :(得分:2)

我最终在每个对象上使用save()来更新auto_now字段。

正如Daniel所说,update()实际上不会更新auto_now字段,因为它会进行直接SQL更新,而auto_now字段则在Python代码中设置。

所以我做了:

obj = MyModel.objects.get(id=someid)
obj.save()

和多个对象:

objs = MyModel.objects.all()
for obj in objs:
   obj.save()

答案 1 :(得分:1)

如何使用update()并将id值设置为自身以触发auto_now字段更改:

from django.db.models import F

MyModel.objects.filter(something=something).update(id=F('id'))