如何将Odoo13中的定制装饰器从一个类导入到另一个类

2024-04-26 03:32:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个类,它有一个decorator方法,如下所示

class emp(models.Model):
    """
    Class used to define the common library properties
    """
    _name = 'emp.library'
    _description = 'Employee Library'

    def pass_context(self, original_function):
    @wraps(original_function)
    def wrapper(*args, **kwds):
        # some operation
        return original_function(*args, **kwds)
    return wrapper
    

我已经在其他py文件中导入了emp类,并在原始函数上声明了decorator作为参数传递,如下所示。 @emp.pass_context() 类螺柱(型号.型号): """ 用于定义公共库属性的类 """ _名称='stud.library' _description=‘学生图书馆’

    @emp.pass_context()
    def func2(self, x, y=False, z=None,c=None):
        # some operation
        return True
    

我得到以下错误

TypeError: pass_context() missing 2 required positional arguments: 'self' and 'original_function'

当我删除pass_上下文中的括号时,我得到

TypeError: pass_context() missing 1 required positional argument: 'original_function'