我的一个API调用可能导致对大量对象(Django模型)的更新.由于我正在单独更新每个项目,保存并继续下一个项目,因此我遇到了性能问题:
for item in Something.objects.filter(x='y'): item.a="something" item.save()
有时我的过滤条件看起来像"x in('a','b','c',...)".
似乎官方的答案是"不会修复".我想知道人们在这些场景中使用什么策略来提高性能.
您链接的票证用于批量创建 - 如果您不依赖于重写save
方法或前/后保存信号来执行保存工作,您可以使用QuerySet
一种update
方法UPDATE
对已过滤的行执行操作:
Something.objects.filter(x__in=['a', 'b', 'c']).update(a='something')