Чтобы уточнить, у меня есть несколько тысяч объектов Property, каждый из которых имеет поле «настоящее» (среди прочих). Чтобы снова сбросить систему для использования, мне нужно установить поле «свойство» каждого элемента в значение false. Теперь, конечно, есть простой способ сделать это, который просто:Как быстро установить поле всех экземпляров модели Django сразу?
for obj in Property.objects.all():
obj.present = False
obj.save()
Но это занимает около 30 секунд на моем сервере развития. Я чувствую, что должна быть лучшим способом, поэтому я попытался ограничениями загруженных полей, используя only
QuerySet Джанго:
for obj in Property.objects.only('present'):
obj.present = False
obj.save()
По какой-то причине, это на самом деле занимает больше, чем просто получить весь объект.
Поскольку мне нужно без разбора установить все эти значения в False, есть ли более быстрый способ? Эта функция не принимает никакого ввода пользователя, кроме команды «идти делать это», поэтому я считаю, что команда на основе SQL будет безопасной, но я не знаю SQL достаточно для создания такой команды.
Спасибо всем.
Как насчет обновления? 'Property.objects.all(). Update (present = False)' – karthikr