Python 如何将id和筛选器中的所有列获取到特定列?odoo9

Python 如何将id和筛选器中的所有列获取到特定列?odoo9,python,openerp,odoo-9,Python,Openerp,Odoo 9,我正在通过 customer = context.get('partner_id') print customer #output #6 现在我想从res.partner获取所有列的所有值,其中id==6 我想这会给我很多记录集 如何过滤记录集,以便获得要使用的值 或者,如果可能的话,我可以得到特定的列值而不是全部。(那太好了) 如果可能,请告诉我如何在旧api和新api旧api self.pool.get('res.partner').search(cr, uid, [('id', '='

我正在通过

customer = context.get('partner_id')
print customer

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

我想这会给我很多记录集

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

或者,如果可能的话,我可以得到特定的列值而不是全部。(那太好了)


如果可能,请告诉我如何在
旧api
新api
旧api

self.pool.get('res.partner').search(cr, uid, [('id', '=', customer)])
self.env['res.partner'].search([('id', '=', customer)])
这将返回与搜索匹配的id列表,因此您必须调用
browse
,才能实际获取记录

新api

self.pool.get('res.partner').search(cr, uid, [('id', '=', customer)])
self.env['res.partner'].search([('id', '=', customer)])
要仅获取一个特定列,而不是所有列,请使用
search\u read
方法。它与search非常相似,只是它接受第二个参数,即您感兴趣的属性列表,并返回字典列表而不是记录集。假设我们只对列
value

self.env['res.partner'].search_read([('id', '=', customer)], ['value'])
你的结果应该是这样的

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

旧api

self.pool.get('res.partner').search(cr, uid, [('id', '=', customer)])
self.env['res.partner'].search([('id', '=', customer)])
这将返回与搜索匹配的id列表,因此您必须调用
browse
,才能实际获取记录

新api

self.pool.get('res.partner').search(cr, uid, [('id', '=', customer)])
self.env['res.partner'].search([('id', '=', customer)])
要仅获取一个特定列,而不是所有列,请使用
search\u read
方法。它与search非常相似,只是它接受第二个参数,即您感兴趣的属性列表,并返回字典列表而不是记录集。假设我们只对列
value

self.env['res.partner'].search_read([('id', '=', customer)], ['value'])
你的结果应该是这样的

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

有什么方法可以在旧的api中执行
.search\u read
。或者我可以在
browse
本身中完成。我正在做
c_item=self.pool.get('res.partner').browse(cr,uid,customer,context=None)
我正在做
res.partner(6,)
No you can't search read在新的api中引入了odoo 8,你能做的最好的就是
c_item=self.pool.get('res.partner')。browse(cr,uid,customer,context=None)。value
起作用,谢谢:)我有什么办法可以在旧的api中执行
。search\u read
。或者我可以在
browse
本身中完成。我正在做
c_item=self.pool.get('res.partner').browse(cr,uid,customer,context=None)
我正在做
res.partner(6,)
No you can't search read在新的api中引入了odoo 8,你能做的最好的就是
c_item=self.pool.get('res.partner')。browse(cr,uid,customer,context=None)。value
起作用,谢谢:)