Django装饰者@transaction_atomic& @static_method相互干扰?

时间:2016-06-13 09:13:42

标签: python django static-methods atomic python-decorators

我的Django模型:

from django.db import models

class MyModel(models.Model):
    my_field1 = models.IntegerField()

    @staticmethod
    def my_method():
        return "XXXX"

正如您所看到的,当我运行my_method()时,它可以正常运行:

>>> MyModel.my_method()
'XXXX'

然后我将装扮器@transaction_atomic添加到my_method()

@transaction.atomic
@staticmethod
def my_method():
    return "XXXX"

现在,当我尝试做同样的事情时,它现在失败了:

>>> MyModel.my_method()
Traceback (most recent call last):
  File "<console>", line 1, in <module>
TypeError: __call__() takes exactly 2 arguments (1 given)

为什么?我应该怎么解决它。 我希望my_method()既是静态方法又是原子方法。

0 个答案:

没有答案