UPD Django 2.2版本现在具有bulk_update。
请参阅以下django文档部分
一次更新多个对象
简而言之,你应该可以使用:
ModelClass.objects.filter(name='bar').update(name="foo")
你还可以使用F对象来执行诸如增加行数之类的操作:
from django.db.models import FEntry.objects.all().update(n_pingbacks=F('n_pingbacks') + 1)请参阅文档:https : //docs.djangoproject.com/en/1.9/topics/db/queries/
但是,请注意:
- 这不会使用
ModelClass.save
方法(因此,如果你内部有逻辑,则不会被触发)。 - 没有Django信号将被发射。
- 你无法
.update()
在切片的QuerySet
上执行,而必须在原始QuerySet
上执行,因此你需要依靠.filter()and .exclude()
方法。



