gpt4 book ai didi

python - Django:在循环中保存查询集项是否有效?

转载 作者:行者123 更新时间:2023-11-28 18:41:12 24 4
gpt4 key购买 nike

获取查询集并在常规循环中对其进行迭代并使用 save() 保存对每个项目的更改是否有效?例如

for mod in mymodel.objects.all():

# modify
mod.name = 'new name or whatever'

# Save
mod.save()

如果不行,有没有更好的办法?文档指出调用 save() 会访问数据库,这就是我问的原因。我是 Django(和 Python)的新手。在实际情况下,我不会遍历整个数据库。

最佳答案

效率不高,但有时你不得不这样做。但是,您可以使用 .update(),尤其是当它与您要输入的值相同时,或者如果有一种简单的方法可以预测它们

因此对于您的示例:MyModel.objects.all().update(name='new name'),这不会遍历整个表,它几乎可以转换为 UPDATE my_model SET name = '新名称'

您也可以在过滤器之后进行多次更新,引用:https://docs.djangoproject.com/en/1.7/topics/db/queries/#updating-multiple-objects-at-once

关于python - Django:在循环中保存查询集项是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25906799/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com