Python 产品模板搜索视图错误行为odoo

Python 产品模板搜索视图错误行为odoo,python,searchview,odoo,Python,Searchview,Odoo,在“产品模板搜索”视图中,定义了按产品属性进行搜索的字段: <field string="Product Variant" name="product_variant_ids" filter_domain="['|', ('product_variant_ids.name','ilike',self), ('product_variant_ids.attribute_value_ids.name','ilike',self)]"/> 如果我输入32gb,它会带来记录,而如果我输入M

在“产品模板搜索”视图中,定义了按产品属性进行搜索的字段:

<field string="Product Variant" name="product_variant_ids" filter_domain="['|', ('product_variant_ids.name','ilike',self), ('product_variant_ids.attribute_value_ids.name','ilike',self)]"/>
如果我输入32gb,它会带来记录,而如果我输入MEMORY,则不会带来任何结果

有人能帮我吗?我想了解过滤域中的内容,他们说:

搜索视图的可能子元素包括:

字段
字段使用用户提供的值定义域或上下文。什么时候 生成搜索域,字段域由一个 另一个和,带有使用和的过滤器

字段可以具有以下属性:

<field string="Product Variant" name="product_variant_ids" filter_domain="['|', ('product_variant_ids.name','ilike',self), ('product_variant_ids.attribute_value_ids.name','ilike',self)]"/>

  • filter\u域
    完整域用作字段的搜索域,可以 使用
    self
    变量将提供的值注入自定义域。 可用于生成比
    操作员
    单独操作(例如,一次搜索多个字段)

    如果同时提供了
    运算符
    筛选域
    ,则
    筛选域
    将采用 优先权

因此,对于您的示例,将其作为
filter\u domain

[
    '|',
    ('product_variant_ids.name','ilike',self),
    ('product_variant_ids.attribute_value_ids.name','ilike',self)
]
如果搜索
MEMORY
,它将在两个给定字段中的一个字段中进行搜索(通过一个ilike进行搜索,对于您的示例,它相当于sql的
字段ilike“%MEMORY%”

产品\u变体\u id.name字段 搜索的值将与
product\u variants\u id.name类似

product\u variants\u id
product.product
的列表

产品的
名称
是其
产品的名称。模板

因此,这使我们能够按名称查找
product.template
(类似于
('name','ilike',self)
,但只能找到带有变体的
product.template

产品\u变量\u id.attribute\u value\u id.name字段
product\u variant\u id
仍然是
product.product
的列表<代码>属性\u值\u ID
产品.attribute.value

以及此
product.attribute.value
的名称,因此在给定的情况下
32gb
red

结论 因此,此筛选器将找不到
内存
颜色
,这些字段可用:

在产品视图中,您可以按如下方式搜索tue属性名称(无需更改):

  • 执行
    高级搜索
  • 选择
    产品属性
    包含
    内存
  • 单击应用