升级Odoo模块后新增字段提示不存在的问题求助
Odoo新增字段后提示字段不存在的解决办法
问题重现
在Odoo模块的MyClass模型中新增字段x_NewField并添加到XML视图后,升级模块时系统提示该字段不存在于模型中,已尝试重启服务、注释XML升级再恢复的操作,问题仍未解决。
涉及代码
Python模型代码
class MyClass(models.Model): _name = 'MyClass' _description = 'My Class' _rec_name = 'some_name' #fields working fine# #. #. #. #fields working fine# x_NewField = field.Char(string='my new field')
XML视图代码
<notebook> <page string="Details"> <group> <group string="some teext"> <field name="x_NewField"/> </group> </group> </page> </notebook>
排查与解决步骤
- 检查字段导入是否完整:确认模型文件顶部是否导入了
fields模块,正确导入语句应为from odoo import models, fields,若仅导入models未导入fields,字段定义不会生效。 - 核对模型名称大小写:Odoo模型名称区分大小写,检查XML视图的
model属性(完整视图定义中需包含)是否与_name = 'MyClass'完全一致,包括大小写匹配。 - 验证模块注册配置:
- 确认
__init__.py文件中已导入MyClass所在的Python文件; - 检查
__manifest__.py的data列表是否包含该XML视图文件,确保视图资源被正确注册。
- 确认
- 强制刷新模型缓存:开启开发者模式后,进入「设置-技术-模型」找到
MyClass,点击「更新模型」,再重新升级模块。 - 检查数据库表字段:直接登录数据库,查看
MyClass对应的数据表(通常为小写表名,如myclass)是否存在x_newfield字段,若不存在说明字段定义未被Odoo识别,需排查Python文件是否被正确加载。 - 调整字段命名规范:Odoo推荐字段名使用下划线分隔(如
x_new_field),避免大小写敏感引发的识别问题,同时检查字段名是否存在拼写错误。
内容的提问来源于stack exchange,提问作者Cristian Lopez
相关产品推荐
相关产品推荐

