我阅读了关于交易管理的Django文档中的章节。据我所知,只要调用TransactionMiddleware
就开始交易。然后通过使用@commit_on_success
,@commit_manually
有可能控制交易结束。在Django开始的交易
我的问题:是否有可能控制交易开始,以及完全摆脱TransactionMiddleware。我担心Django框架的许多部分实际上取决于TransactionMiddleware的存在,所以我不想打破它。我希望它可以用于除了那些属于我明确指定的应用程序的所有视图。最重要的是,我希望能够完全控制某些视图的交易行为 - 从开始到结束。我应该采取什么方法?有没有外部应用程序,库来帮助我?第一次数据库命中发生时,是急于还是懒惰地创建事务?
我必须这样做,因为我想与明确设置的隔离级别开始交易。如果出现特定的异常,则沿着'IsolationLevelRequired'行,我希望能够以更高的隔离级别重新启动事务,比如说'SERIALIZABLE'。虽然这看起来比我预期的要好,但今天会看看。谢谢。 – julkiewicz 2011-04-16 15:53:22
此外 - django/db/transaction.py有一个非常好的代码文档。这似乎与你所说的一致。 – julkiewicz 2011-04-16 22:30:25