Qweb 语法

1. 简介

QWeb是DTCloud使用的主要模板引擎。它是XML模板引擎,主要用于生成HTML片段和页面。模板指令是写在xml标签中,以t-开头。

2. template标签

创建一个QWeb视图,只需要一个arch元素并包含以下的属性:
● id – 视图的id
● name, inherit_id, priority 与ir.ui.view的一致
● primary – 设置为True并与inherit_id一起使用时,设置为主视图
● groups – 以逗号分隔的分组id
● page – 设置为True时,该页面为网页
● optional – enabled 或 disabled,在用户界面中是否可以被禁用,默认是可以禁用

3. Qweb语法

3.1 输出内容

### 3.2 条件语句:

t-if属性值为True时,输出t标签包含内容

<div>     
    <t t-if="condition">    
        <p>ok</p>    
    </t>
</div> 
#当condition是true的时候解析成: 
<div>    
    <p>ok</p> 
</div> 
#condition为false的时候解析成 
<div> 
</div>
          
还有t-elif/t-else:

<div>   
    <p t-if="user.birthday == today()">Happy bithday!</p> 
    <p t-elif="user.login == 'root'">Welcome master!</p>  
    <p t-else="">Welcome!</p>
</div>

3.3 循环

t-foreach用来指定需要循环处理的数据,t-as提供的是在后面用于代表当前项目的变量名。

<t t-foreach="[1, 2, 3]" t-as="i">    
    <p><t t-esc="i"/></p> 
</t> 
#上述语句输出:
<p>1</p> 
<p>2</p> 
<p>3</p>

3.4 属性

qweb可以对属性进行实时计算并在输出时设置,通过t-attr来实现,有三种形式:

  • t-att-属性名 可以根据属性名创建一个属性:
<div t-att-a="42"/>  //创建属性a,属性值为42
#输出
<div a="42"></div>

属性值也可以为一个 格式化字符串,可以在运行期间确定具体值,作为属性值<li t-attf-class="row {{ item_parity }}">//item_parity在运行时确定值

  • t-att=mapping 如果参数是映射表,每个键值对会生成一个属性:
    <div t-att="{'a': 1, 'b': 2}"/> #输出 <div a="1" b="2"></div>

  • t-att=pair 如果参数是元组或2个元素的数组,那么第一个项就作为属性名,第二个作为属性值:

<div t-att="['a', 'b']"/>
#输出 
<div a="b"></div>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中亿丰数字科技集团有限公司

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值