Встречается на собеседованиях • сегодня
Как в Django создать несколько записей в базе данных в рамках одной транзакции
Для создания нескольких записей в Django в рамках одной транзакции используйте transaction.atomic(). Это гарантирует, что либо все записи будут сохранены, либо ни одна из них, если произойдет ошибка.
Пример:
python
from django.db import transaction
try:
with transaction.atomic():
# Создаем несколько объектов
obj1 = MyModel(field1='value1')
obj1.save()
obj2 = MyModel(field1='value2')
obj2.save()
obj3 = MyModel(field1='value3')
obj3.save()
except Exception as e:
# Обработка ошибки, транзакция уже откатится автоматически
print(f"Error occurred: {e}")Ключевые моменты:
transaction.atomic()создает транзакционную область- При возникновении исключения внутри блока произойдет автоматический откат
- Можно использовать как контекстный менеджер (как в примере), так и декоратор для функции
- Для массового создания можно также использовать
bulk_create()внутри транзакции

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