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

Odoo 14 替换sale模块variants XML模板及JS报错解决

错误原因

  1. 第一段代码自定义内容不显示:你需要展示的<p>标签被XML注释符<!-- -->包裹了,QWeb渲染时会直接忽略注释内容,自然不会显示到页面上。
  2. 加web.layout后出现JS报错:web.layout是Odoo网站前端页专用的布局模板,它依赖的前端逻辑要求渲染上下文中必须传入user对象(包含user_context属性),但sale.variants模板通常是在后端订单管理、商品变体弹窗这类场景下渲染的,这类场景默认不会传递网站前端才有的user上下文变量,就会触发JS读取属性不存在的报错。

正确处理方案

你不需要额外套web.layout,只需要把要展示的内容从注释里移出来,直接写在xpath节点内即可,正确代码示例:

<template id="my_variants" inherit_id="sale.variants">
  <xpath expr="." position="replace">
    <p>My codee, this is will show normally</p>
    <!-- 这里放你自定义的其他模板内容 -->
  </xpath>
</template>

如果你的自定义内容需要引入特定的JS/CSS资源,直接在模块的资产继承配置里添加对应资源即可,不要强行套不匹配场景的布局模板。

内容的提问来源于stack exchange,提问作者Maicoly Morocho

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 05:54:03