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

Odoo 18自定义模块列表视图不显示问题求助

问题分析与修复方案

1. 列表视图继承的XPath语法错误

你当前的列表视图使用了<xpath expr="//field" position="before">,这个表达式会匹配所有<field>元素,并在每个字段前重复插入指定内容,直接导致视图结构损坏,Odoo无法加载这个无效的列表视图。

修复方式:
修改列表视图的XPath,定位到准确位置插入cnp字段,比如在city字段后添加:

<!-- List View -->
<record id="cnp_number_view_tree" model="ir.ui.view">
    <field name="name">res.partner.view.list.inherit.cnp</field>
    <field name="model">res.partner</field>
    <field name="inherit_id" ref="base.view_partner_tree"/>
    <field name="arch" type="xml">
        <xpath expr="//field[@name='city']" position="after">
            <field name="cnp"/>
        </xpath>
    </field>
</record>

如果需要完全自定义列表字段(不依赖默认视图),可以直接创建独立的tree视图:

<!-- 自定义列表视图 -->
<record id="cnp_number_view_tree" model="ir.ui.view">
    <field name="name">res.partner.view.tree.cnp</field>
    <field name="model">res.partner</field>
    <field name="arch" type="xml">
        <tree string="CNP Partners">
            <field name="name"/>
            <field name="phone"/>
            <field name="email"/>
            <field name="city"/>
            <field name="cnp"/>
        </tree>
    </field>
</record>

2. 动作未关联自定义视图

你的action_cnp_validation没有指定具体视图ID,Odoo会默认使用模型的系统视图,导致自定义列表视图无法被调用。

修复方式:
在动作中通过view_ids明确绑定自定义的列表和表单视图:

<!-- Action -->
<record id="action_cnp_validation" model="ir.actions.act_window">
    <field name="name">CNP Numbers</field>
    <field name="res_model">res.partner</field>
    <field name="view_mode">list,form</field>
    <field name="view_ids" eval="[(5,0,0), (0,0, {'view_mode': 'list', 'view_id': ref('cnp_number_view_tree')}), (0,0, {'view_mode': 'form', 'view_id': ref('cnp_number_view_form')})]"/>
</record>

3. 表单视图优化(可选)

你当前的表单视图是完全新建的,会丢失原伙伴表单的所有默认功能(如地址、关联数据等)。如果需要保留原有功能并添加CNP字段,建议改为继承默认表单视图:

<!-- 继承默认表单视图 -->
<record id="cnp_number_view_form" model="ir.ui.view">
    <field name="name">res.partner.view.form.inherit.cnp</field>
    <field name="model">res.partner</field>
    <field name="inherit_id" ref="base.view_partner_form"/>
    <field name="arch" type="xml">
        <xpath expr="//div[@name='contact']" position="inside">
            <div class="form-group">
                <field name="cnp" placeholder="CNP"/>
            </div>
        </xpath>
    </field>
</record>

4. 模块更新注意事项

  • 确保__manifest__.py中正确声明XML文件:
    'data': [
        'cnp_list_view.xml',
    ],
    
  • 更新模块时选择升级(而非仅更新应用),确保所有变更被加载。
  • 调试模式下,进入「设置 > 技术 > 用户界面 > 视图」,搜索res.partner相关视图,检查自定义列表视图是否存在且状态有效。

内容的提问来源于stack exchange,提问作者Md.Muntasir Mamun

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 15:05:55