我想知道如何重新保存对象只是为了更新auto_now
字段。
着名的是,我想到了这段代码
obj = MyModel.objects.get(id=someid)
obj.save()
但如果我要更新许多对象怎么办?或者更好的是,更新对象auto_now
字段
答案 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'))