You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Odoo 8中为sale_order_line创建产品搜索筛选器报错,求正确写法

正确写法说明

根据你的使用场景,分两种情况给出正确写法:

场景1:在销售订单(sale.order)搜索视图中,筛选包含指定产品的订单

如果是要找出包含某个产品的销售订单,有两种匹配方式:

  • 精准匹配产品:
<field name="product_id" string="Sales" filter_domain="[('line_ids.product_id', '=', self)]"/>
  • 模糊匹配产品名称:
    如果想通过产品名称关键词做模糊搜索,需要关联产品的name字段:
<field name="product_id" string="Sales" filter_domain="[('line_ids.product_id.name', 'ilike', self)]"/>

场景2:在销售订单行(sale.order.line)搜索视图中,筛选订单行的产品

如果是直接在订单行的搜索视图里筛选产品,无需额外配置filter_domain,直接使用字段本身即可:

<field name="product_id" string="Product"/>

原代码的问题点:

  • 字段名写line_ids.product_id属于冗余写法,对应视图中直接用product_id即可,Odoo会自动处理关联逻辑。
  • ilike是字符串匹配运算符,不能直接用于product_id这个many2one类型字段,若要模糊搜索需指向产品的name字段。
  • 原filter_domain的域逻辑不符合Odoo筛选规则,无法正确关联筛选条件。

内容的提问来源于stack exchange,提问作者Nur Faiz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 10:44:52