Odoo 10 - 从 product_uom 获取特定记录的 ID
Odoo 10 - Get id of a specific record from product_uom
我在系统中定义了以下自定义计量单位。
我有一个产品的扩展模型,我想以编程方式查找此特定记录的 ID,因此我可以在 onchange 方法中使用它。
由于类型是手动创建的,我不想硬编码 id,因为之前可能已经定义了其他 UoM。你如何从这个模型(product.uom)中得到对应于"name" = "MILES"的特定id?
id | create_uid | name | rounding | write_uid | uom_type | write_date | factor | active | create_date | category_id
----+------------+--------+----------+-----------+----------+----------------------------+--------+--------+----------------------------+-------------
20 | 1 | MILES | 0.001 | 1 | bigger | 2017-07-12 03:42:25.363007 | 0.001 | t | 2017-07-12 03:33:27.251635 | 1
您可以尝试使用以下 ORM search() 方法:
self.env['product.uom'].search([('name', '=', 'MILES')], limit=1).id
除 Odedra 之外的第二种方法是使用外部 ID。但是您必须自己在客户端(在“设置”下)中提供一个单元,或者您在自定义模块中将单元作为 xml 数据记录提供,这已经需要一个 ID。
假设外部 ID 是 my_module.my_unit_of_measure
,在 Odoo python 代码中,您可以通过以下方式获取它:
self.env.ref('my_module.my_unit_of_measure')
在 xml 或 csv 文件中也有一些可能性:
<record id="my_product" model="product.product">
<!-- required fields -->
<field name="uom_id" ref="my_module.my_unit_of_measure" />
</record>
<!-- using in filters should work too -->
<filter name="filter_my_unit" string="Products with my unit"
domain="[('uom_id', '=', ref('my_module.my_unit_of_measure')" />
我在系统中定义了以下自定义计量单位。
我有一个产品的扩展模型,我想以编程方式查找此特定记录的 ID,因此我可以在 onchange 方法中使用它。
由于类型是手动创建的,我不想硬编码 id,因为之前可能已经定义了其他 UoM。你如何从这个模型(product.uom)中得到对应于"name" = "MILES"的特定id?
id | create_uid | name | rounding | write_uid | uom_type | write_date | factor | active | create_date | category_id
----+------------+--------+----------+-----------+----------+----------------------------+--------+--------+----------------------------+-------------
20 | 1 | MILES | 0.001 | 1 | bigger | 2017-07-12 03:42:25.363007 | 0.001 | t | 2017-07-12 03:33:27.251635 | 1
您可以尝试使用以下 ORM search() 方法:
self.env['product.uom'].search([('name', '=', 'MILES')], limit=1).id
除 Odedra 之外的第二种方法是使用外部 ID。但是您必须自己在客户端(在“设置”下)中提供一个单元,或者您在自定义模块中将单元作为 xml 数据记录提供,这已经需要一个 ID。
假设外部 ID 是 my_module.my_unit_of_measure
,在 Odoo python 代码中,您可以通过以下方式获取它:
self.env.ref('my_module.my_unit_of_measure')
在 xml 或 csv 文件中也有一些可能性:
<record id="my_product" model="product.product">
<!-- required fields -->
<field name="uom_id" ref="my_module.my_unit_of_measure" />
</record>
<!-- using in filters should work too -->
<filter name="filter_my_unit" string="Products with my unit"
domain="[('uom_id', '=', ref('my_module.my_unit_of_measure')" />