【发布时间】:2021-05-14 12:05:10
【问题描述】:
在 Django 中使用 ViewSet 的自定义操作方法时,我将一些业务逻辑分离到另一个类中,其名称为BusinessService。
BusinessService 类可以从许多其他方法中使用,经过一些分析,我发现该类中的所有方法(超过 5 个)都应该在一个原子事务中。
因此,最简单但重复的方法可能是在方法名称上方添加 @transaction.atomic 装饰器,但作为遵循 the DRY principle 的一种方式,我正在努力删除多余的重复,但无法在简单的方法。
有没有什么可以在原子事务中创建一个完整的类?
到目前为止,我尝试在类名上方附加@transaction.atomic,当然没有成功,所以我分析了装饰器,发现Atomic类使用了__enter__和@987654328 @ 用于事务管理,需要with 或其他东西。
【问题讨论】:
标签: python django transactions