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

Odoo 15继承视图独立加载问题:修改影响主视图及优先级异常

Odoo 15 独立视图解决方案

要实现两个视图独立加载、互不影响,不要使用视图继承,直接创建全新的独立树视图,然后在菜单动作中指定该视图即可。具体步骤如下:

1. 创建独立的树视图

复制原视图(ep_gi.view_policy_tree)的核心结构,根据需求修改字段显示、按钮权限:

<record id="view_tree_renewal_notice" model="ir.ui.view">
    <field name="name">epgi.policy.renewal.tree</field>
    <field name="model">epgi.policy</field>
    <!-- 无需设置inherit_id和mode,这是独立视图 -->
    <field name="arch" type="xml">
        <tree create="false" edit="false" delete="false">
            <!-- 保留你需要显示的字段,按顺序排列 -->
            <field name="name"/>
            <field name="underwriting_year_id"/> <!-- 新增的字段 -->
            <field name="state"/>
            <!-- 不需要的字段直接移除,或通过invisible属性隐藏 -->
            <!-- <field name="naicom_policy_uid" invisible="1"/> -->
            <!-- <field name="currency_id" invisible="1"/> -->
            <!-- 其他你需要展示的字段 -->
        </tree>
    </field>
</record>

2. 关联菜单动作到新视图

找到对应菜单的ir.actions.act_window记录,指定新创建的树视图并设置筛选条件:

<record id="action_policy_renewal_notice" model="ir.actions.act_window">
    <field name="name">Renewal Notice</field>
    <field name="res_model">epgi.policy</field>
    <field name="view_mode">tree</field>
    <!-- 绑定新创建的独立视图 -->
    <field name="view_id" ref="your_module.view_tree_renewal_notice"/>
    <!-- 设置你的筛选domain -->
    <field name="domain">[('your_field', '=', 'your_target_value')]</field>
</record>

原方法问题说明

  • 使用inherit_id继承视图时,无论调整priority还是mode,修改都会加入原视图的继承链,必然影响主视图;
  • mode="primary"会直接替换原视图的主版本,导致主视图同步变更;
  • 只有创建完全独立的视图,让菜单动作单独调用它,才能实现两个视图完全隔离、互不干扰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 16:20:25