Odoo安装自定义模块报res.config.settings不存在test_field错误如何解决
问题原因
- 核心错误:你在继承
res.config.settings时额外定义了_name = "test.settings",Odoo中同时声明_inherit和_name会触发原型继承,新建独立的test.settings模型,而非修改原生的res.config.settings模型。你的视图绑定的是原生res.config.settings模型,自然无法识别你新增的test_field字段。 - 次要问题:代码中引用的外部ID
test_config没有对应定义,即使修复第一个问题,运行时也会因为找不到该记录触发报错。
修复方案
- 修改
./models/res_config_settings.py文件,删除_name定义,同时可以直接使用Odoo内置的config_parameter参数自动存储配置值,无需手动重写get_values和set_values方法:
from odoo import fields, models class ResConfigSettings(models.TransientModel): _inherit = "res.config.settings" test_field = fields.Char( string="Test Field", config_parameter="test_module.test_field" )
- 如果你的配置需要存储到自定义模型而非系统参数,需要先定义对应的存储模型,再创建对应
test_config外部ID的记录,再保留你原来的读写逻辑即可。 - 修复后卸载原有错误安装的模块,重启Odoo后重新安装即可生效。
内容的提问来源于stack exchange,提问作者dloy
相关产品推荐
相关产品推荐

