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

如何修复Odoo网站模板调用portal_layout时的image_url报错

报错原因

从报错堆栈中的节点信息<t t-set="x_icon" t-value="website.image_url(website, 'favicon')"/>可以定位根因:portal.portal_layout依赖的上下文变量website为空值(NoneType),调用image_url方法时触发属性错误。portal.portal_layout继承了网站基础布局模板,默认需要当前网站对象作为上下文参数才能正常渲染。

解决方法

1. 补充上下文参数

在控制器渲染模板之前,给values字典传入website变量即可:

# 插入到return request.render代码之前
values['website'] = request.website

如果是多网站场景需要绑定订单所属公司的网站,可手动指定:

# 优先取订单所属公司绑定的网站,兜底用当前请求的网站
website = request.env['website'].sudo().search([('company_id', '=', order_sudo.company_id.id)], limit=1)
values['website'] = website or request.website

2. 可选补充其他通用上下文

如果后续出现其他上下文变量缺失的报错,可以补充portal布局常用的默认参数:

values.update({
    'website': request.website,
    'user': request.env.user,
    'is_public_user': request.env.user._is_public(),
})

修改后重启Odoo服务,即可正常加载portal布局的CSS样式,不会再触发该报错。

内容的提问来源于stack exchange,提问作者A.Sasori

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 22:36:07