2017-02-16 36 views
0

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

如何从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

,由于您的过滤器实际上已经过滤掉了所有记录的可能性较大。意思是没有一个记录符合你的标准。

您查询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) 
+0

菲利普您好,这里是截图https://postimg.org/image/vmqv6uexn/ – Pointer

+0

对不起,刚刚意识到。筛选仅筛选现有记录集。首先你需要搜索然后过滤。我更新了我的答案。 –

+0

Phillip Stock现在工作,但为什么使用此代码过滤时my_ids = self.env ['res.partner']。search([('company_id','=',company_id)])得到一些结果。我不明白为什么和在哪里使用过滤? – Pointer