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

如何正确继承Odoo Studio创建的自定义视图

原方案失效原因

直接继承Studio自动生成的自定义视图、靠随机生成的studio_page_*属性做xpath定位的方案本身存在稳定性缺陷,初期能用只是还没触发Studio的内容重生成逻辑:

  • Studio生成的视图XML ID带随机UUID后缀,只要对对应视图做过重置、重新生成、跨环境迁移、模块升级操作,这个ID就会变化,直接导致inherit_id找不到父视图抛出加载错误
  • xpath定位用的studio_page_6zNV9这类name是Studio自动生成的随机串,只要在Studio里调整过对应页面、删除重建,这个name就会变化,直接导致xpath匹配不到节点抛出错误
可行替代方案

方案1:直接继承Odoo原生基础视图,完全不依赖Studio生成的中间视图

这是稳定性最高的方案,彻底绕开Studio随机生成内容的影响:

  • 定位res.partner对应的官方原生基础表单视图(默认XML ID为base.view_partner_form),直接将自定义模块的继承目标设置为这个原生视图
  • xpath不要定位Studio生成的随机节点,直接定位原生视图里固定存在的节点(比如原生page、group的固定name属性),将财务信息页插入到目标位置即可
  • 参考实现代码:
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
    <record id="view_res_partner_finan" model="ir.ui.view">
        <field name="name">res.partner.finan</field>
        <field name="model">res.partner</field>
        <!-- 直接继承Odoo原生合作伙伴表单视图,不引用Studio生成的带随机ID的视图 -->
        <field name="inherit_id" ref="base.view_partner_form"/>
        <field name="arch" type="xml">
            <!-- 定位原生视图固定节点,比如在notebook最后一个页面后追加自定义页 -->
            <xpath expr="//form/sheet/notebook/page[last()]" position="after">
                <page name="financ" string="Inf. Financiera">
                    <group>
                        <!-- 自定义字段与布局内容 -->
                    </group>
                </page>
            </xpath>
        </field>
    </record>
</odoo>
  • 代码部署升级完成后,可以删掉Studio里之前生成的对应重复自定义页,避免页面重复显示。

方案2:保留Studio已有自定义配置,手动固定不稳定标识

如果不想放弃Studio已经做好的其他配置,就把所有随机生成的标识改成固定值,消除变量:

  • 进入Studio打开对应视图,找到之前要替换的studio_page_6zNV9页面,手动将它的name属性改成固定自定义值(比如studio_page_finance_anchor),不要使用自动生成的随机串
  • 确认当前环境下Studio对应自定义视图的稳定XML ID,不要使用带随机UUID的临时ID,可以通过导出Studio自定义包、或者在ir.ui.view模型中搜索对应视图名称的方式拿到正确引用ID
  • 修改完成后,继承代码里的inherit_id和xpath都使用手动设置的固定值,后续不在Studio中随意删除该锚点页面,即可保持稳定。

方案3:调整视图优先级做兼容兜底

如果涉及多环境迁移等复杂场景,可以给自定义视图添加priority字段,值设置为比Studio视图优先级更高(Odoo中视图优先级数字越大越晚加载,Studio视图默认优先级为16,自定义视图可以设置为25及以上),同时xpath不要强依赖Studio生成的节点,直接以notebook等固定节点为锚点做操作,就算Studio生成的节点变化,也不会抛出致命加载错误。
示例配置:

<field name="priority">25</field>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 07:12:24