odoo14下qweb模板的前端与后端语法区别

文旅笔记家
文旅笔记家 2020-09-28T15:57:15+08:00
0 0 1

QWeb是Odoo中用于生成动态网页的模板语言,它结合了前端和后端语法。在Odoo14中,QWeb模板的前端与后端语法有一些区别,下面我们来详细了解一下。

1. 变量

在前端语法中,使用双大括号{{}}来表示变量,例如:{{ variable }}。变量可以是来自于模型数据的字段值,也可以是由后端传递给前端的变量。

在后端语法中,使用with标签来表示变量,例如:

< t t-set="variable" t-value="value"/>

该变量可以在后续代码块中使用。

2. 循环

在前端语法中,使用for循环语句来对列表进行迭代,例如:

< ul>
    < li t-foreach="recordset" t-as="record">
        {{ record.name }}
    </ li>
</ ul>

上述示例中,recordset是传递给前端的记录集,record表示每个记录的对象。

在后端语法中,同样使用for循环语句,例如:

< t t-foreach="recordset" t-as="record">
    < li>  < t t-esc="record.name"/>  </ li>
</ t>

上述示例中,标签用来表示循环语句,t-foreach属性用来指定循环的对象,t-as属性用来指定循环迭代时的变量。

3. 条件判断

在前端语法中,可以使用if语句对条件进行判断,例如:

< div t-if="condition">
    Content to show when condition is true.
</ div>

其中,condition是传递给前端的条件。

在后端语法中,同样使用if语句进行条件判断,例如:

< t t-if="condition">
    < div>
        Content to show when condition is true.
    </ div>
</ t>

上述示例中,标签用来表示条件语句,t-if属性用来指定条件判断的表达式。

4. 继承与包含

在前端语法中,可以使用extend指令实现模板的继承,例如:

< t t-extend="module.template_name">
    Content to override.
</ t>

其中,module.template_name是要继承的模板。

在后端语法中,同样使用extend指令实现模板的继承,例如:

< t t-extend="module.template_name">
    < t t-content="section_name">
        Content to override.
    </ t>
</ t>

上述示例中,标签用来表示继承关系,t-content属性用来指定要替换的内容部分。

此外,在后端语法中,还可以使用t-call指令来包含其他模板,例如:

< t t-call="module.template_name"/>

上述示例中,module.template_name是要包含的模板。

5. 前端与后端语法的混合使用

在QWeb模板中,可以混合使用前端和后端语法。例如,在前端语法中使用后端语法的变量:

< ul>
    < li>
        < t t-set="variable" t-value="value"/>
        {{ variable }}
    </ li>
</ ul>

上述示例中,variable是由后端传递给前端的变量。

同样,在后端语法中使用前端语法的变量:

< t t-foreach="recordset" t-as="record">
    < li>
        < t t-esc="record.name"/>
        {{ record.name }}
    </ li>
</ t>

上述示例中,recordset是由后端传递给前端的列表。

总之,Odoo14下QWeb模板的前端与后端语法有一些区别,了解这些区别能够更好地使用QWeb模板进行网页开发。通过合理利用前端与后端语法,可以更加灵活地生成网页内容,并提高开发效率。

相关推荐
广告位招租

相似文章

    评论 (0)

    0/2000