在odoo9中过滤操作

时间:2017-02-16 11:05:25

标签: openerp odoo-9

我尝试在记录集上使用过滤但在conslole中只获取res.partner()为空。

如何从res.partner获取所有记录,其中id = company_id

@api.multi   
def get_partner(self):
    my_ids = self.env['res.partner'].filtered(lambda r: r.id == r.company_id)
    print(my_ids)

1 个答案:

答案 0 :(得分:1)

这可能是因为您的过滤器实际上已过滤掉所有记录。意思是集合中没有一条记录符合您的标准。

您查询r.id == r.company_id正在说

find all partners whose id is equal to the company id 

所以基本上你需要将lambda表达式改为能够提供所需列表的东西。如果您希望所有合作伙伴都是当前用户公司的一部分,那么查询将如下所示。

company_id = self.env.user.company_id.id
my_ids = self.env['res.partner'].search([]).filtered(lambda r: r.company_id.id == company_id)