我试图定义一个方法@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
?
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上提供的官方文档。