上記の質問に関してインターネットで見つけた便利なコンテンツは次のとおりです。
https://www.sankalpjonna.com/learn-django/running-a-bulk-update-with-django
非効率的な方法
model_qs= ModelClass.objects.filter(name = 'bar')
for obj in model_qs:
obj.name = 'foo'
obj.save()
効率的な方法
ModelClass.objects.filter(name = 'bar').update(name="foo") # for single value 'foo' or add loop
Bulk_updateを使用する
update_list = []
model_qs= ModelClass.objects.filter(name = 'bar')
for obj in model_qs:
model_obj =ModelClass.object.get(id=obj.id)
model_obj.name = "foo" # Or what ever the value is for simplicty im providing foo only
update_list.append(model_obj)
ModelClass.objects.bulk_update(update_list,['name'])
アトミックトランザクションの使用
from django.db import transaction
with transaction.atomic():
model_qs = ModelClass.objects.filter(name = 'bar')
for obj in model_qs:
ModelClass.objects.filter(name = 'bar').update(name="foo")
賛成票はありますか?よろしくお願いします:ご清聴ありがとうございました;)