在Django中使用ViewSet的自定义操作方法时,我将一些业务逻辑划分为另一个类,其名称为BusinessService
BusinessService
类可以从许多其他方法中使用,经过一些分析,我发现类中的所有方法(超过5个)都应该在原子事务中
因此,最简单但重复的方法可能是在方法名称上方添加@transaction.atomic
decorator,但作为遵循the DRY principle的一种方法,我正在努力消除多余的重复,但无法以简单的方式实现
在一个原子事务中是否有生成整个类的方法
到目前为止,我尝试在类名称上方附加@transaction.atomic
,但当然没有成功,因此我分析了decorator,发现Atomic
类使用__enter__
和__exit__
进行事务管理,这需要with
或其他东西
您可以尝试使用自定义元类(请参见What are metaclasses in Python?),它将装饰所创建类的所有方法。它如下所示(请注意,可能有几个领域可以改进这个元类):
相关问题 更多 >
编程相关推荐