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

Odoo 10搜索视图中Many2many字段筛选报错咨询

解决Odoo 10中Many2many字段搜索视图Domain报错问题

嘿,我来帮你搞定这个Odoo 10里Many2many字段搜索视图的报错问题!你遇到的“Uncaught Error: Failed to evaluate search criterions”通常是domain语法错误、字段引用不对或者XML结构不完整导致的,下面给你一步步拆解解决方案:

常见错误原因&修复方法

1. Many2many字段的Domain操作符用错了

Many2many是多对多关系,存储的是集合,不能直接用=或者!=这类操作符,必须用in或者not in。比如你要筛选关联了特定记录的主模型数据,正确的domain写法是:

[('your_many2many_field', 'in', [target_record_id])]

举个例子,如果你的Many2many字段叫partner_ids,要筛选关联了ID为1的伙伴的记录,domain应该写[('partner_ids', 'in', [1])],而不是[('partner_ids', '=', 1)]。

2. 搜索视图的XML结构不完整

你给出的XML代码里<group>标签没闭合,而且缺少必要的筛选字段/过滤器,这会导致Odoo解析XML时出错。完整的搜索视图应该包含要搜索的字段或者过滤器,再加上排序组,所有标签必须正确闭合。

3. 字段引用拼写错误

确保你在domain里用的字段名和模型中定义的Many2many字段名完全一致,大小写、拼写都不能错,比如模型里定义的是fare_well_partners,你就不能写成farewell_partners。

正确的示例代码

假设你的模型fare.well.room.ser里有一个叫partner_ids的Many2many字段,关联res.partner模型,下面是修复后的搜索视图XML:

<record id="view_partner_fare_well_ser_search_master" model="ir.ui.view">
    <field name="name">Farewell Room Search</field>
    <field name="model">fare.well.room.ser</field>
    <field name="arch" type="xml">
        <search string="Farewell Room">
            <!-- 把Many2many字段添加到搜索栏,方便用户手动选择关联记录 -->
            <field name="partner_ids" string="关联伙伴"/>
            <!-- 添加预设过滤器,按条件筛选主模型记录 -->
            <filter name="filter_active_partners" string="仅关联活跃伙伴" domain="[('partner_ids.active', '=', True)]"/>
            <!-- 排序组需正确闭合标签 -->
            <group string="Order By">
                <filter name="order_by_name" string="按名称排序" sequence="1" domain="[]" context="{'order_by': 'name'}"/>
                <filter name="order_by_create_date" string="按创建时间排序" sequence="2" domain="[]" context="{'order_by': 'create_date desc'}"/>
            </group>
        </search>
    </field>
</record>

额外排查技巧

  • 打开浏览器开发者工具(F12),查看控制台的完整报错信息,里面会具体指出是哪个部分的domain出了问题,比如括号不匹配、引用了不存在的字段等。
  • 如果是给Many2many字段的可选值加过滤(比如选择伙伴时只显示活跃的),要把domain加在<field>标签上,比如<field name="partner_ids" domain="[('active', '=', True)]"/>,这和筛选主模型记录的domain是两回事。

内容的提问来源于stack exchange,提问作者Pawan Kumar Sharma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:47:38