我的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()
既是静态方法又是原子方法。