Odoo 16 QWeb模板<link>标签内容错位问题求助
解决Odoo 16 QWeb模板中标签内容被移到外部的问题
问题原因
标准HTML里,<link>是自闭合空元素(通常用于引入样式、图标等,本身不包含内部内容)。Odoo的QWeb模板引擎会遵循HTML元素的默认规则,自动将<link>处理为自闭合标签,导致你写在标签内的文本被剥离到标签外部。而自定义标签(如url)不属于标准空元素,所以不会触发这个自动处理逻辑。
解决方案
方法1:使用t-tag指令显式生成标签
通过QWeb的t-tag指令指定标签名,让引擎根据内容自动处理标签的开闭形式,避免被默认规则强制转为自闭合:
<channel> <item> <t t-tag="link">test</t> </item> </channel>
该写法会生成正确的<link>test</link>结构。
方法2:使用t-raw输出原始HTML
如果需要直接输出完整的原始标签内容,可以用t-raw指令:
<channel> <item> <t t-raw="'<link>test</link>'"/> </item> </channel>
这种方式适合固定的HTML片段,灵活性稍弱,但能确保输出完全符合预期。
内容的提问来源于stack exchange,提问作者knipknap
相关产品推荐
相关产品推荐

