2017-02-16 42 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