QWeb模板语言

来自Odoo大V社-odoo中文开发手册
95102545讨论 | 贡献2017年8月7日 (一) 23:13的版本

跳转至: 导航搜索

Qweb分析器查找模板中的特殊指令,并用动态生成的HTML替换。这些指令是XML元素属性,可用于任何有效的标记或元素,如<div>, <span>, 或 <field>.。

有时我们想用一个Qweb指令但不想放在任何在我们的模板的XML元素。在这种情况下,我们有一个特殊的元素<t>,可以有Qweb指令,如t-if或t-foreach,但是不会产生任何的XML /HTML输出。

Qweb指令将经常使用的计算表达式,来产生不同的结果,这些结果取决于当前的记录值。有两种不同的Qweb实现方法:客户端使用JavaScript、服务器端使用Python。

报表和网站页面使用服务器端Python实现,而看板视图使用客户端JavaScript实现。这意味着使用看板视图使用Qweb表达式,它使用JavaScript的语法,而不是Python。

当显示看板视图时,内部步骤大致如下:

 获取用于渲染的模板的xml。
 调用服务器read()方法得到模板中的字段的数据。
 定位kanban-box模板,使用Qweb解析,输出最终的HTML片段。

Inject the HTML in the browser's display (the DOM). 插入在浏览器显示(the DOM)的HTML。

这并不意味着在技术上准确。这只是一个思维导图,去理解看板中的事物是如何工作的。

接下来,我们将了解Qweb表达式计算,探索可用的Qweb指令,使用的例子,增强我们的待办任务看板卡片。