如何将所有列从 id 和 filter 获取到特定列?奥多9

How to get all the columns from id and filter to specific column? odoo9

我正在通过

获取客户​​的 ID
customer = context.get('partner_id')
print customer

#output
#6

现在我想从 res.partner 中获取所有列的所有值,其中 id == 6

我想这会给我很多记录集

我如何过滤记录集以便获得我想要使用的值。

或者,如果可能的话,我能否获取特定列的值而不是全部。 (那就太好了)

如果可能,请告诉我如何在 old_apinew_api

中完成

旧api

self.pool.get('res.partner').search(cr, uid, [('id', '=', customer)])

这将 return 匹配搜索的 ID 列表,因此您必须调用 browse 才能实际获取记录

新建api

self.env['res.partner'].search([('id', '=', customer)])

只获取特定列,而不是所有列使用 search_read 方法它与搜索非常相似,只是它需要第二个参数,它是您感兴趣的属性列表,它returns 是字典列表而不是记录集。所以假设我们只对 value

列感兴趣
self.env['res.partner'].search_read([('id', '=', customer)], ['value'])

你的结果应该是这样的

[{'id': 1, 'value': 'some value'}, ...]