odoo 9中的过滤操作

Filtered operation in odoo9

我尝试在记录集上使用过滤,但在控制台中只有 res.partner() 为空。

如何从 res.partner where 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)

这可能是因为您的过滤器实际上已经过滤掉了所有记录。这意味着集合中没有一条记录符合您的条件。

你查询 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)