上下文:我得到的代码是其中的各个模型在更新后各自执行自己的db.commit()
。 (您可以争论这是否是不好的编码实践,但这不是这个问题的重点...)因为我的代码更新了许多模型,所以我想在完成所有更新后再执行一次commit()而不是为每次提交支付开销。
问题:是否有一种结构可以覆盖对commit()
的所有调用(可能以上下文管理器的形式),并在末尾执行单个commit()
? / p>
with deferred_commits(db):
... update a bunch of models that might themselves call commit ...
...或功能上等效的东西?我可以看到我将如何实现它,但是我宁愿在使用自己的代码之前使用经过测试的代码。