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领域?