2009-06-11 1 views
2

Я использую Django уже более года, но, думаю, я пропустил некоторые очень важные вещи. У меня довольно большой запрос (1000+ объектов), и я хотел бы изменить один атрибут для каждого из объектов в этом наборе запросов. Это действительно путь? Я уверен, что есть что-то более простое?Изменение атрибута для каждого объекта в наборе запросов

for obj in qs: 
    obj.my_attr = True 
    obj.save() 

Благодаря

ответ

14

Вы можете просто сделать изменения в объеме, хотя это не будет стрелять в модели save() обратных вызовов:

MyModel.objects.filter(..).update(my_attr=True) 

Документация: Updating multiple objects at once

+0

Ах, я не могу что я полностью пропустил метод «обновления»! Благодарю. –

+1

+1 - хотя я думаю, что ваш «не может» можно изменить на «не будет», правильно? –

+0

Yup, извините, я написал его, прежде чем нашел документацию. :) –