我似乎无法找到相关的文档,但我想在QuerySet示例的循环中更新记录:
data = Site.objects.all()
for i in data:
... do stuff
i.update(field="value")
我知道我可以做到:
data = Site.objects.all()
for i in data:
... do stuff
Site.objects.filter(pk=i.pk).update(field="value")
但这似乎效率低下,因为我已经有了记录,所以不应该再次查询它吗?
由于
答案 0 :(得分:2)
只需使用save
:
data = Site.objects.all()
for i in data:
# ... do stuff
# i.update(field="value")
i.field = value
i.save()
n.b。,更新循环中的对象非常昂贵,特别是对于大量对象。而且,无论如何,保存将花费您额外的查询。