来自Odoo文档的Odoo api.model,什么是`model.env`?

问题描述 投票:0回答:1

我试图定义一个方法@api.model

@api.model
def test(param1, param2):
    print model.env['product.template'].search([("company_id", "=", param1), ("warehouse_id", "=", param2), ])

问题是,official documentation说你可以使用model.env,但当我尝试这样做时,我得到:

NameError: global name 'model' is not defined

哪个是正确的import用来获得model

odoo odoo-10
1个回答
2
投票

model的意思是你需要一个模型对象(空记录集)才能访问env。在新的API中,self将成为记录集,因此您可以通过self.env访问环境:

@api.model
def test(self, param1, param2):
    print self.env['product.template'].search([("company_id", "=", param1), ("warehouse_id", "=", param2), ])

请注意,该方法应在model class上定义(在您的代码段中,test方法签名缺少self参数)。

在相关的说明中,您提供的链接不是来自官方文档并且已过时 - 它是在从旧API到OpenERP 7.0和Odoo 8.0之间的新API的初始迁移期间编写的,因此它不是最好的资源。我建议参考Odoo.com上提供的官方文档。

© www.soinside.com 2019 - 2024. All rights reserved.