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

Odoo 14启动超级用户后出现KeyError: 'training.course'求助

Odoo 14 KeyError: 'training.course' 排查与修复方案

错误背景

启动Odoo 14超级用户后触发KeyError: 'training.course',代码与参考教程完全一致但问题未解决。服务器错误栈如下:

Odoo Server Error

Traceback (most recent call last):
  File "D:\Odoo\server\odoo\http.py", line 652, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "D:\Odoo\server\odoo\http.py", line 317, in _handle_exception
    raise exception.with_traceback(None) from new_cause
KeyError: 'training.course'

排查与修复步骤

1. 确认模块安装状态

  • 登录Odoo后台,进入【应用】模块,搜索包含training.course模型的目标模块,确保模块处于已安装状态。
  • 检查模块根目录下的__manifest__.py(Odoo 14中也可能是__openerp__.py),确认'installable'字段设为True,且'depends'列表包含必要依赖(如base)。

2. 验证模型定义与导入

  • 检查模型文件(通常为models/training_course.py),确保_name属性严格匹配'training.course':
    from odoo import models, fields
    
    class TrainingCourse(models.Model):
        _name = 'training.course'
        _description = 'Training Course'
        # 字段定义...
    
  • 确认模块的__init__.py文件正确导入模型模块:
    from . import models
    # 或直接导入具体文件
    from .models import training_course
    

3. 清除缓存并重启服务

  • 完全停止Odoo服务,删除模块目录及Odoo服务器目录下的__pycache__文件夹,清除编译缓存。
  • 重新启动Odoo服务,强制加载最新模块代码。

4. 检查模型权限配置

  • 进入【设置】-【技术】-【权限】-【模型访问权限】,搜索training.course:
    • 确保存在对应的权限记录,且超级用户所属的Administrator组拥有读/写权限。
    • 若权限记录不存在,手动创建或重新安装模块生成默认权限。

5. 数据库层面验证模型注册

  • 连接Odoo数据库,执行SQL查询:
    SELECT * FROM ir_model WHERE model = 'training.course';
    
  • 若查询结果为空,说明模型未被注册到数据库,需先卸载模块(备份数据后),再重新安装。

验证修复

完成上述步骤后,重新登录超级用户,尝试访问training.course相关的菜单或功能,确认错误是否消失。

内容的提问来源于stack exchange,提问作者Ali Shidqie Al Faruqi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 18:51:11