Odoo 16添加自定义模块报错:Model 'stock.production.lot'不存在
解决Odoo 16中flower_shop模块激活失败问题
问题描述
已完成Odoo 16在PyCharm的安装与配置,将自定义flower_shop模块放入addons目录后,模块在应用列表中显示,但无法激活,触发以下报错:
Traceback (most recent call last): File "D:\odoo\odoo-16.0\odoo\http.py", line 1584, in _serve_db return service_model.retrying(self._serve_ir_http, self.env) File "D:\odoo\odoo-16.0\odoo\service\model.py", line 134, in retrying result = func() File "D:\odoo\odoo-16.0\odoo\http.py", line 1613, in _serve_ir_http response = self.dispatcher.dispatch(rule.endpoint, args) File "D:\odoo\odoo-16.0\odoo\http.py", line 1810, in dispatch result = self.request.registry['ir.http']._dispatch(endpoint) File "D:\odoo\odoo-16.0\odoo\addons\base\models\ir_http.py", line 149, in _dispatch result = endpoint(**request.params) File "D:\odoo\odoo-16.0\odoo\http.py", line 699, in route_wrapper result = endpoint(self, *args, **params_ok) File "d:\odoo\odoo-16.0\addons\web\controllers\dataset.py", line 46, in call_button action = self._call_kw(model, method, args, kwargs) File "d:\odoo\odoo-16.0\addons\web\controllers\dataset.py", line 33, in _call_kw return call_kw(request.env[model], method, args, kwargs) File "D:\odoo\odoo-16.0\odoo\api.py", line 461, in call_kw result = _call_kw_multi(method, model, args, kwargs) File "D:\odoo\odoo-16.0\odoo\api.py", line 448, in _call_kw_multi result = method(recs, *args, **kwargs) File "<decorator-gen-74>", line 2, in button_immediate_install File "D:\odoo\odoo-16.0\odoo\addons\base\models\ir_module.py", line 76, in check_and_log return method(self, *args, **kwargs) File "D:\odoo\odoo-16.0\odoo\addons\base\models\ir_module.py", line 491, in button_immediate_install return self._button_immediate_function(type(self).button_install) File "D:\odoo\odoo-16.0\odoo\addons\base\models\ir_module.py", line 615, in _button_immediate_function registry = modules.registry.Registry.new(self._cr.dbname, update_module=True) File "<decorator-gen-14>", line 2, in new File "D:\odoo\odoo-16.0\odoo\tools\func.py", line 87, in locked return func(inst, *args, **kwargs) File "D:\odoo\odoo-16.0\odoo\modules\registry.py", line 90, in new odoo.modules.load_modules(registry, force_demo, status, update_module) File "D:\odoo\odoo-16.0\odoo\modules\loading.py", line 487, in load_modules processed_modules += load_marked_modules(cr, graph, File "D:\odoo\odoo-16.0\odoo\modules\loading.py", line 371, in load_marked_modules loaded, processed = load_module_graph( File "D:\odoo\odoo-16.0\odoo\modules\loading.py", line 196, in load_module_graph model_names = registry.load(cr, package) File "D:\odoo\odoo-16.0\odoo\modules\registry.py", line 247, in load model = cls._build_model(self, cr) File "D:\odoo\odoo-16.0\odoo\models.py", line 615, in _build_model raise TypeError("Model %r does not exist in registry." % name) TypeError: Model 'stock.production.lot' does not exist in registry.
环境信息
- 最新版PyCharm
- Odoo 16
- Python 3.10.9
解决方案
报错核心是stock.production.lot模型未找到,该模型属于Odoo官方的库存模块,问题出在模块依赖未正确处理,按以下步骤解决:
检查并修复模块依赖
打开flower_shop模块根目录下的__manifest__.py文件,找到depends字段,确认是否包含'stock'。如果没有,添加该依赖:'depends': ['base', 'stock'],安装库存模块
如果__manifest__.py已声明stock依赖,先在Odoo应用列表中搜索并安装「库存」模块,完成后再尝试激活flower_shop模块。更新应用列表
修改依赖后,回到Odoo应用页面,点击「更新应用列表」按钮,确保系统识别到模块的最新依赖配置。
内容的提问来源于stack exchange,提问作者Krakalien
相关产品推荐
相关产品推荐

