恢复Odoo数据库遇AttributeError:res.config.settings无get_debranding_settings属性
Odoo15恢复数据库后模板渲染错误解决
核心错误
恢复数据库后触发模板渲染异常,具体报错:
AttributeError: 'res.config.settings' 对象没有属性 'get_debranding_settings'
错误发生在web.frontend_layout模板的/t/html/head/t[7]节点,代码尝试调用res.config.settings模型不存在的get_debranding_settings方法来获取网站图标地址。
可能原因
- 原数据库安装了自定义去品牌化模块,恢复数据库后该模块未同步安装,导致模板依赖的方法缺失
web.frontend_layout模板被自定义修改,添加了调用该方法的代码,但对应的功能模块未部署
解决办法
1. 安装缺失的去品牌化模块
如果原数据库有对应的去品牌化模块,按以下步骤操作:
- 开启Odoo开发者模式
- 进入「应用」菜单,搜索并安装对应的去品牌化模块
- 重启Odoo服务,清除浏览器缓存后重试
2. 修复模板代码(无需去品牌化功能时)
直接修改模板移除无效代码:
- 开启开发者模式,进入「设置 → 技术 → 用户界面 → 视图」
- 搜索
web.frontend_layout模板并打开编辑 - 找到报错节点:
<t t-set="favicon_url" t-value="request.env['res.config.settings'].sudo().get_debranding_settings()['favicon_url']"/>
- 将其替换为Odoo默认的图标路径:
<t t-set="favicon_url" t-value="'/web/static/img/favicon.ico'"/>
- 保存模板后,重启Odoo服务并清除缓存
3. 命令行强制安装模块(无法进入后台时)
如果无法登录Odoo后台,用命令行安装模块:
./odoo-bin -d 你的数据库名 -i 去品牌化模块名 --stop-after-init
替换命令中的数据库名和模块名,执行完成后重启Odoo服务
内容的提问来源于stack exchange,提问作者Dave Max
相关产品推荐
相关产品推荐

