需求场景:想给所有的model都添加一个方法 funcA, 即所有的model都能调用funcA.
代码实现:
class BaseModelExtend(models.AbstractModel):
_name = 'basemodel.extend'
@api.model_cr
def _register_hook(self):
'''
Register method in BaseModel
'''
@api.model
def funcA(self, **kwargs):
#code
return True
models.BaseModel.funcA = funcA #将此方法传递给BaseModel
return super(BaseModelExtend, self)._register_hook()
结果: 这样我们就可以在任何model中调用funcA。