В декораторе работает форма.
is_dirty, будучи истинным, звучит так, как будто запрос ... грязный (было бы логично выполнить откат, только если он грязный).
Следовательно, откат, кажется, происходит каждый раз.
Ваша база данных поддерживает транзакции (например, не таблицы myIsam)?
Делаете ли вы какие-либо commit () в вашем методе? Если да, то, конечно, его нельзя откатить.
Конечно, вы можете сделать это вручную, выдав коммит в конце массового импорта (или, что еще лучше, каждый блок из N значений вставляется + 1 в конце, если вы не возражаете против того, чтобы ваши данные были частично импортированы ) и завернуть весь блок в
try :
do_whatever_inserts
except :
db.rollback()
raise
else :
db.commit()