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

Odoo15报错:res.partner模型不存在contact_prenom字段,请求排查

Odoo 15: 解决"Field 'contact_prenom' does not exist in model 'res.partner'"报错

下面是针对该报错的具体排查和解决步骤:

1. 验证Python模型的字段定义

  • 确保x.py里的模型继承和字段定义完全正确,示例代码参考:
    from odoo import models, fields
    
    class ResPartnerExtension(models.Model):
        _inherit = 'res.partner'
        contact_prenom = fields.Char(string='联系人名')  # 字段名必须和视图引用完全一致
    
  • 检查模块根目录的__init__.py是否导入了该模型文件:
    from . import x
    
    缺少这行代码的话,Odoo不会加载你的模型定义,字段自然无法被创建。

2. 检查视图文件的正确性

  • 确认x.xml中字段引用的拼写和Python里的contact_prenom完全匹配(大小写敏感),示例视图代码:
    <record id="inherit_partner_form_contact_prenom" model="ir.ui.view">
        <field name="name">res.partner.form.contact.prenom.inherit</field>
        <field name="model">res.partner</field>
        <field name="inherit_id" ref="base.view_partner_form"/>
        <field name="arch" type="xml">
            <!-- 根据需求调整position属性,如after/before等 -->
            <field name="name" position="after">
                <field name="contact_prenom" string="联系人名"/>
            </field>
        </field>
    </record>
    
  • 检查manifest.py的data列表是否包含该视图文件:
    'data': [
        'views/x.xml',
    ],
    
    路径需和实际文件位置匹配,否则视图无法被加载。

3. 执行正确的模块升级流程

  • 先重启Odoo服务器,确保新的模型代码被加载。
  • 进入Odoo后台找到你的模块,点击升级按钮。若升级过程有报错,查看Odoo日志的详细信息。
  • 若升级无效,可尝试卸载模块(注意备份相关数据)后重新安装,这能清除可能残留的旧模型缓存。

4. 排查模块加载问题

  • 检查模块目录名om_是否符合Odoo模块命名规范(仅允许小写字母、数字、下划线),特殊字符可能导致模块无法被正确识别。
  • 用--log-level=debug参数启动Odoo,查看启动日志确认你的模型文件是否被成功加载,是否存在Python语法错误、导入错误等。若模型加载失败,字段不会被添加到res.partner中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 19:40:56