1
我正在嘗試使用Odoo ORM基於相關字段的值進行搜索。相關領域通過2個many2one關係訪問:在Odoo搜索域中使用many2one字段
info = env['product.supplierinfo'].search([ \
('product_tmpl_id.product_variant_id.id', '=', line.product_id.id), \
('product_tmpl_id.product_variant_id.active', '=', True), \
('x_provides_stock', '=', True), \
('x_available_qty', '>', 0)])
正如你所看到的,第一個元組2在域中通過product_tmpl_id.product_variant_id
搜索領域。然而,由於我得到的結果比我應該多得多,所以這個域似乎並不奏效。
如果我不是在查詢後加上這兩個約束過濾器的方法,我得到預期的結果:
info = env['product.supplierinfo'].search([ \
('x_available_qty', '>', 0), \
('x_provides_stock', '=', True)]) \
.filtered(lambda i: i.product_tmpl_id.product_variant_id == line.product_id and i.product_tmpl_id.product_variant_id.active)
有什麼我做錯了與第一種方法?該文檔說,您可以通過域中的many2one字段使用關係遍歷。這是僅限於一個many2one領域?