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

Odoo15继承res.config.settings视图添加自定义字段不显示如何解决

问题背景

我在尝试继承account模块的res.config.settings视图添加自定义字段,代码部署后系统无任何错误或警告提示,但新增内容在会计设置板块及其他位置均不显示。同文件后续编写的、绑定新菜单项和动作的独立设置板块功能运行正常。
使用的XML代码如下:

<record id="res_config_settings_view_form" model="ir.ui.view">
    <field name="name">res.config.settings.view.form.commission.journal</field>
    <field name="model">res.config.settings</field>
    <field name="inherit_id" ref="account.res_config_settings_view_form" />
    <field name="arch" type="xml">
        <!-- <xpath expr="//div[hasclass('settings')]" position="inside"> -->
        <!--     <div class="app_settings_block" data-string="Invoicing" string="Invoicing" data-key="account" groups="account.group_account_manager"> -->
        <div data-key="account" position="inside">
            <h2>Wallet Journal Settings</h2>
            <!-- <div class="row mt16 o_settings_container" id="o_res_settings"> -->
            <div class="row mt16 o_settings_container" id="default_journal_and_coa_config" name="default_journal_and_coa_config">
                <div class="col-12 col-lg-6 o_setting_box" id="default_journal_coa">
                    <div class="o_setting_right_pane">
                        <div>
                            <div class="text-muted">
                               Wallet Journal
                            </div>
                            <div class="content-group mt16">
                                 <field name="wallet_journal_id"  colspan="4"/>
                            </div>
                            <div class="text-muted">
                               Franchise Commssion
                            </div>
                            <div class="content-group mt16">
                                <field name="commision_account_id"  colspan="4"/>
                            </div>
                            <div class="text-muted">
                               Expense to Bofast
                            </div>
                            <div class="content-group mt16">
                                <field name="bofast_expense_account_id"  colspan="4"/>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </field>
</record>
排查解决步骤

按优先级从高到低逐一验证:

  • 优先排查视图ID冲突:你当前继承视图的id填的是res_config_settings_view_form,和account模块原生的根视图ID完全重名。Odoo加载模块时同模型下如果出现重复ID的视图,后加载的自定义视图会直接覆盖原生视图定义,不会按你写的inherit_id执行继承扩展,这是无报错但内容不显示的最高频原因。把record的id改成自定义唯一值,比如res_config_settings_view_form_commission_journal,升级模块后再验证效果。
  • 修正XPath定位规则:你现在直接用<div data-key="account" position="inside">做节点定位,不同Odoo版本中,设置页带data-key="account"属性的节点可能嵌套在多层带app_settings_block类的容器内,部分版本还会对设置页节点做权限过滤,直接匹配属性很容易命中不到目标节点。推荐替换为明确的xpath表达式定位,参考写法:
    <xpath expr="//div[hasclass('app_settings_block') and @data-key='account']" position="inside">
        <!-- 此处放你要新增的设置区块内容 -->
    </xpath>
    
  • 校验字段定义与访问权限:确认你在Python层的res.config.settings模型中正确定义了wallet_journal_id、commision_account_id、bofast_expense_account_id三个字段,字段没有附加额外的权限组限制,且当前登录用户属于account.group_account_manager用户组——会计设置板块默认仅对该组用户可见。
  • 确认模块依赖配置:打开自定义模块的__manifest__.py文件,检查depends列表是否明确添加了account依赖,避免自定义模块加载顺序早于account模块,导致继承执行时找不到父视图。
  • 检查视图实际加载状态:开启开发者模式后,进入「设置-技术-用户界面-视图」菜单,搜索你自定义的视图名称,确认视图处于已加载状态,没有被其他模块针对同一父视图的继承规则覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 16:37:00