Встречается на собеседованиях • сегодня

Можно ли при вызове метода save указать, какие поля нужно изменять

Да, в Django можно указать, какие именно поля нужно обновлять при вызове метода save(), используя параметр update_fields. Это полезно для оптимизации запросов к БД, особенно при частичном обновлении модели.

Пример:

python
# Создаем или получаем объект
obj = MyModel.objects.get(pk=1)
obj.field1 = 'новое значение'
obj.field2 = 'другое значение'

Сохраняем только field1

obj.save(update_fields=['field1'])

text

Важные нюансы:
1. `update_fields` работает только для существующих записей (не для создания)
2. Автоматически обновляются поля `auto_now` и `auto_now_add`, даже если не указаны
3. Если включен `auto_now` на DateTimeField, оно всегда обновляется
4. При использовании `update_fields` не срабатывают сигналы `pre_save` и `post_save` для необновляемых полей

Альтернатива - метод `update()` у QuerySet, который работает на уровне БД без вызова `save()`.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы