如何从id获取所有列并过滤到特定列? odoo9

时间:2016-08-20 16:00:23

标签: python openerp odoo-9

我通过

获得了客户的身份
customer = context.get('partner_id')
print customer

#output
#6

现在我想从res.partner获取id == 6

的所有列的所有值

这将给我很多记录集我猜

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

或者如果有可能我可以获得特定的列值而不是全部。 (那会很棒)

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

中执行此操作

1 个答案:

答案 0 :(得分:3)

旧api

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

这会返回与搜索匹配的ID列表,因此您必须调用browse来实际获取记录

新api

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

只获取特定列,而不是所有列都使用search_read方法,它非常类似于仅搜索它需要第二个参数,这是您所属属性的列表感兴趣的是它返回一个字典列表而不是记录集。所以我们说我们只对列value

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

你的结果应该是这样的

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