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

能否在表单视图等常规视图中使用Qweb模板?调试无效果求助

问题解答

你不能直接在表单视图的<page>标签内嵌套<template>标签来使用QWeb,这是因为<template>是用来定义独立可复用QWeb模板的根标签,表单视图的XML解析器不会处理这种嵌套结构,所以你的代码会被直接忽略,看起来就像不存在一样。

正确的两种实现方式:

方式1:直接在表单视图中使用QWeb指令(无需独立模板)

去掉外层的<template>标签,直接在<page>内使用QWeb的t-*指令:

<page string="test">
    <t t-esc="'Logging!'"/>
    <!-- t-log的内容会输出到浏览器控制台,不是页面上 -->
    <t t-log="'Logging!'"/>
    <t t-raw="'Logging'"/>
</page>

注意:字符串需要用单引号包裹(比如'Logging!'),否则会被当作变量解析,若变量不存在则无输出。

方式2:定义独立QWeb模板后调用

如果需要复用这段模板内容,可以先单独定义QWeb模板:

<!-- 在模块的XML文件中定义模板(比如views/templates.xml) -->
<template id="test_log_template">
    <t t-esc="'Logging!'"/>
    <t t-log="'Logging!'"/>
    <t t-raw="'Logging'"/>
</template>

然后在表单视图的<page>中通过t-call调用该模板(替换your_module_name为你的模块名):

<page string="test">
    <t t-call="your_module_name.test_log_template"/>
</page>

额外注意事项:

  • 修改完成后必须升级模块,确保XML视图和QWeb模板被重新加载
  • t-log的输出不会显示在页面上,需要打开浏览器开发者工具(F12)的控制台查看
  • 若使用变量而非固定字符串,确保变量在当前表单视图的上下文环境中存在

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 13:01:18