CentOS7上Odoo11自定义模型未被检测的问题求助
看起来你在CentOS 7上的Odoo 11里开发学生信息模块时遇到了模型无法被系统检测的问题,我帮你梳理下可能的问题点和解决办法,先看看你提供的代码里的几个关键问题:
1. 模块版本号不匹配(最可能的原因)
你的__manifest__.py里版本号写的是12.0.1.0.0,但你用的是Odoo 11。Odoo会根据版本号前缀判断模块兼容的Odoo大版本,这个12的前缀会让Odoo 11认为这是不兼容的模块,直接跳过加载。
修复方法:
把__manifest__.py里的version字段改成11.0.1.0.0,和你的Odoo版本对应:
'version':'11.0.1.0.0',
2. 模块识别与安装检查
先确保你的模块能被Odoo识别并正确安装:
- 把
student_contact模块放到Odoo的addons目录下(比如默认的/usr/lib/python3/dist-packages/odoo/addons/或者你自定义的addons路径) - 登录Odoo后台,进入「应用」菜单,点击右上角的「更新应用列表」按钮,搜索你的模块名称(manifest里的
name是fiche,所以搜这个) - 如果找到模块,点击安装,安装完成后重启Odoo服务(这一步很重要,新模型有时候需要重启才能加载)
3. 代码与配置文件检查
模型文件确认
你的models/student.py和models/__init__.py代码看起来没问题,模型类StudentStudent正确继承了models.Model,_name设置为student.student,字段定义也没有语法错误。可以再检查下文件编码是否是UTF-8,有没有特殊字符导致加载失败。
权限文件检查
你的security/ir.model.access.csv格式正确,权限配置没问题,但要确保文件保存为无BOM的UTF-8格式,避免Odoo解析出错。这行配置是正确的:
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_student_student,access.student.student,model_student_student,base.group_user,1,1,1,0
视图文件确认
视图里的res_model是student.student,和模型的_name一致,菜单和动作的定义也没问题,只要模型能正常加载,视图就能正常显示。
4. 调试日志排查
如果以上步骤都做完还是不行,启动Odoo时开启 debug 日志,看看具体报错:
odoo-bin --log-level=debug
查看日志里有没有关于模块加载、模型注册的错误信息,比如语法错误、依赖缺失等,这些日志能帮你定位具体问题。
内容的提问来源于stack exchange,提问作者Destro

