Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django decorators@transaction_atomic&@静态法相互干扰?_Python_Django_Static Methods_Atomic_Python Decorators - Fatal编程技术网

Python Django decorators@transaction_atomic&@静态法相互干扰?

Python Django decorators@transaction_atomic&@静态法相互干扰?,python,django,static-methods,atomic,python-decorators,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' 但随后我将dec

我的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'
但随后我将decorator
@transaction\u-atomic
添加到
my\u-method()

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

>>> MyModel.my_method()
Traceback (most recent call last):
  File "<console>", line 1, in <module>
TypeError: __call__() takes exactly 2 arguments (1 given)
>>MyModel.my_方法()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:\uuuuu call\uuuuuuu()正好接受2个参数(给定1个)
为什么??我该怎么修呢。
我希望
my_method()
同时是静态方法和原子方法。

如果您切换装饰器,使用
@staticmethod
作为最外层的装饰器,会发生什么情况?@knbk有效!!!!如果你用
@staticmethod
作为最外层的装饰器来切换装饰器,会发生什么情况?@knbk这很有效!!!!
>>> MyModel.my_method()
Traceback (most recent call last):
  File "<console>", line 1, in <module>
TypeError: __call__() takes exactly 2 arguments (1 given)