作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
获取查询集并在常规循环中对其进行迭代并使用 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/
我是一名优秀的程序员,十分优秀!