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

Odoo技术问题:为标签页树形视图添加域过滤器

Odoo合作伙伴表单树形视图域过滤无效的解决办法

刚接触Odoo,想在合作伙伴表单里新增一个树形视图,只展示该联系人的“active”状态合同,但直接在树形视图标签上设置domain="[('state', '=', 'active')]"完全没效果,请问正确的实现方式是什么?

用户提供的原始代码:

<record model="ir.ui.view" id="view_partner_form_inherit">
  <field name="name">res.partner.form.inherit</field>
  <field name="model">res.partner</field>
  <field name="inherit_id" ref="base.view_partner_form" />
  <field name="arch" type="xml">
    <notebook position="inside">
      <page string="Contracts">
        <field name="contract_ids">
          <tree domain="[('state', '=', 'active')]">
            <field name="state" invisible="1" />
            <field name="name" />
            <field name="arrears" />
            <field name="total_amount_paid" />
          </tree>
        </field>
      </page>
    </notebook>
  </field>
</record>

正确实现方式

1. 将域过滤移到关联字段标签上

Odoo中,针对one2many这类关联字段的子集过滤,必须把domain属性定义在<field>标签上,而不是嵌套的树形视图标签里。树形视图的domain属性仅适用于独立视图(比如菜单对应的全局树形视图),无法过滤关联字段的子集。

修改后的代码:

<record model="ir.ui.view" id="view_partner_form_inherit">
  <field name="name">res.partner.form.inherit</field>
  <field name="model">res.partner</field>
  <field name="inherit_id" ref="base.view_partner_form" />
  <field name="arch" type="xml">
    <notebook position="inside">
      <page string="Contracts">
        <!-- 把domain属性移到contract_ids字段上 -->
        <field name="contract_ids" domain="[('state', '=', 'active')]">
          <tree>
            <field name="state" invisible="1" />
            <field name="name" />
            <field name="arrears" />
            <field name="total_amount_paid" />
          </tree>
        </field>
      </page>
    </notebook>
  </field>
</record>

2. 额外注意点

  • 确认contract_ids是res.partner到合同模型的one2many关联字段,且合同模型的state字段确实存在"active"这个可选值
  • 如果需要动态过滤(比如根据当前合作伙伴的公司过滤合同),可以在domain里引用父级字段,例如:[('state', '=', 'active'), ('company_id', '=', parent.company_id)]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 09:45:36