Встречается на собеседованиях • сегодня
Как при вызове метода модели save Django определяет вызывать sort или update
Django автоматически определяет, вызывать INSERT или UPDATE, проверяя первичный ключ (pk) объекта модели:
- Если
pkравенNoneили не существует в БД — выполняетсяINSERT(создание новой записи). - Если
pkсуществует в БД — выполняетсяUPDATE(обновление существующей записи).
Пример:
python
# INSERT (новая запись)
new_obj = MyModel(name="New")
new_obj.save() # Django выполнит INSERT
# UPDATE (существующая запись)
existing_obj = MyModel.objects.get(pk=1)
existing_obj.name = "Updated"
existing_obj.save() # Django выполнит UPDATEНюансы:
- Можно явно указать
force_insert=Trueилиforce_update=Trueвsave(). - Если
force_insertиспользуется для существующего объекта, выбросится исключение. - При обновлении Django обновляет только измененные поля (оптимизация).

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы