Odoo自定义模块latihan_purchase安装升级报错:模型外部ID未找到
问题解决步骤
核心原因
模型未被正确加载,导致Odoo处理权限文件时找不到对应的模型记录。问题出在models/__init__.py的导入逻辑上——你将模型文件命名为models.py并放在models目录下,当前导入语句会触发循环导入,无法加载实际的模型类。
解决方案
1. 修正模型导入逻辑
修改models/__init__.py文件,替换原有内容为:
from .models import LatihanPurchase, LatihanPurchaseLine
若需导入所有模型类,也可写:
from .models import *
2. (可选)调整模型文件名(避免命名冲突)
如果不想修改导入语句,可将models目录下的models.py重命名为其他名称(比如purchase_models.py),再修改models/__init__.py为:
from . import purchase_models
3. 补充必要依赖模块
检查manifest.py中的depends字段,确保包含模型用到的基础模块:
'depends': ['base', 'product', 'uom'],
你的模型用到了product.product和uom.uom,必须依赖这两个模块才能正常创建模型。
4. 重新安装/升级模块
- 若之前已安装过
latihan_purchase模块,先卸载它 - 重新执行模块安装或升级操作
验证
完成上述步骤后,重新安装模块,权限文件即可找到对应的模型记录,错误将被解决。
内容的提问来源于stack exchange,提问作者chelvyn kleden
相关产品推荐
相关产品推荐

