Openerp Odoo 10-从产品计量单位获取特定记录的id

Openerp Odoo 10-从产品计量单位获取特定记录的id,openerp,Openerp,我在系统中定义了以下自定义计量单位 我有一个产品的扩展模型,我想通过编程查找这个特定记录的id,这样我就可以在onchange方法中使用它 由于该类型是手动创建的,我不想硬编码id,因为以前可能定义了其他计量单位。如何从该模型(product.uom)中获取与“name”=“MILES”对应的特定id 您可以尝试使用以下ORM search()方法: 除了Odedra之外的第二种方法是使用外部ID。但是您必须在客户机中(在“设置”下)自己提供一个单元,或者在自定义模块中以xml数据记录的形式提供

我在系统中定义了以下自定义计量单位

我有一个产品的扩展模型,我想通过编程查找这个特定记录的id,这样我就可以在onchange方法中使用它

由于该类型是手动创建的,我不想硬编码id,因为以前可能定义了其他计量单位。如何从该模型(product.uom)中获取与“name”=“MILES”对应的特定id


您可以尝试使用以下ORM search()方法:


除了Odedra之外的第二种方法是使用外部ID。但是您必须在客户机中(在“设置”下)自己提供一个单元,或者在自定义模块中以xml数据记录的形式提供该单元,这已经需要一个ID

假设外部ID为my_module.my_unit of_measure,在Odoo python代码中,您可以通过以下方式获得它:

self.env.ref('my\u module.my\u unit\u of\u measure')
在xml或csv文件中,也有一些可能性:



详细说明您想要什么。您是如何创建此单元的?您是在客户机中创建的,还是使用自定义模块将此单元与xml数据记录一起带入数据库?我使用用户界面创建了它,但现在您提到了它,将is添加为xml数据记录可能会更聪明。如果是这样,是否可以通过外部id或类似的方式引用它?是的。我会补充一个答案。但是Odedra的也是正确的。谢谢,我在这里得到了一个答案:尽管我仍然想知道如何唯一地识别特定记录,以及如何确保它不会两次加载到系统中(noupdate=“1”)?感谢分享,这个解决方案对于我想做的特定事情来说更好,因为它允许我在自定义插件中提供数据和功能。我将保持奥德德拉的回答正确,因为它明确回答了我提出的问题。
 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
self.env['product.uom'].search([('name', '=', 'MILES')], limit=1).id