Контекст: Мне дан код, в котором отдельные модели делают свои db.commit()
после обновления.(Вы можете поспорить, является ли это плохой практикой кодирования, но суть этого вопроса не в этом ...) Поскольку мой код обновляет несколько моделей, я бы хотел сделать один коммит () после завершения всех обновлений, а нечем оплачивать накладные расходы на отдельные коммиты.
Вопрос: Существует ли конструкция, которая переопределяет все вызовы commit()
, возможно, в виде диспетчера контекста, который выполняет один commit()
в конце?
with deferred_commits(db):
... update a bunch of models that might themselves call commit ...
... или что-то функционально эквивалентное?Я вижу, как я это реализую, но я бы предпочел использовать проверенный код, прежде чем развернуть свой собственный.