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

Odoo中Form视图能否使用QWeb模板及渲染异常问题咨询

问题原因与解决方法
  • 你在form视图arch节点内直接内嵌的<template>标签默认不会被QWeb引擎解析,此类自定义模板仅用于供给前端OWL组件调用,未绑定对应组件时,所有t-开头的指令都会原样输出到页面,不会执行求值逻辑。

方案1:轻量实现(无需自定义模板)

如果仅需要展示动态拼接地址的图片,直接通过计算字段配合标准组件实现即可:

  1. 先在realestate.property模型中新增计算字段,预处理完整图片地址:
from odoo import models, fields

class RealestateProperty(models.Model):
    _name = 'realestate.property'
    # 原有字段保留
    image_full_url = fields.Char(compute='_compute_image_full_url')
    
    def _compute_image_full_url(self):
        for record in self:
            record.image_full_url = f'http://localhost:3000/rest/api/{record.image_url}'
  1. 视图中直接调用该字段,使用图片组件渲染:
<field name="image_full_url" widget="image" string="房产预览图"/>

方案2:保留自定义QWeb模板的实现方式

如果确实需要使用自定义QWeb模板做复杂渲染,需要配套前端OWL组件使用:

  1. 自定义前端OWL组件,在组件配置中指定关联templatePreviewBox模板,同时将当前表单的记录数据传入模板上下文
  2. 在form视图中通过<widget/>标签挂载你自定义的OWL组件,前端加载组件时会自动解析模板内的所有QWeb指令,完成属性的动态替换。

QWeb语法参考

QWeb分为两类使用场景,语法规则基本一致:

  • 后端QWeb:用于报表、网站页面的服务端渲染
  • 前端OWL QWeb:用于后台视图的客户端组件渲染
    相关语法说明可以在Odoo本地安装的官方文档模块中查阅。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 14:06:04