Odoo 14 替换sale模块variants XML模板及JS报错解决
错误原因
- 第一段代码自定义内容不显示:你需要展示的
<p>标签被XML注释符<!-- -->包裹了,QWeb渲染时会直接忽略注释内容,自然不会显示到页面上。 - 加
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
相关产品推荐
相关产品推荐

