Используя Django 1.3 с PostgreSQL 9.0, у меня есть многоэтапная функция / представление создания объекта, где:
- Основной объект создан (пробовал и MyModel.objects.create (), ивручную с использованием методов object.save () и
- Затем устанавливаются отношения m2m (они должны следовать за созданием основного объекта, чтобы у указанного объекта был идентификатор, к которому он относится).
Некоторые из этих отношений могут потерпеть неудачу или могут возникнуть другие проблемы, поэтому мне нужно, чтобы вся функция работала атомарно.
Я попытался обернуть функцию с помощью декоратораaction.commit_on_success, а также попытался использовать commit_manually (и установил точку фиксации в конце функции);но ни один не работает.Таким образом, главный объект создается и сохраняется в базе данных, даже если позднее в функции вызывается исключение.Это оставляет базу данных в несогласованном состоянии, чтобы выразить это вежливо.Итак, как это отладить?Я видел подобные вопросы, но они касались использования MySQL, тогда как такого рода неработающие транзакции не должны происходить с Postgres.Несколько лет назад на Django Trac были билеты на эту проблему, но они были предположительно исправлены / решены.Могут ли какие-нибудь джангонавты дать просветление?