Xml 我怎样才能做一个;for loop";在Qweb中使用特定数量的循环?
我想做一个循环来打印元素的精确次数。大概是这样的:Xml 我怎样才能做一个;for loop";在Qweb中使用特定数量的循环?,xml,for-loop,odoo,odoo-8,qweb,Xml,For Loop,Odoo,Odoo 8,Qweb,我想做一个循环来打印元素的精确次数。大概是这样的: <t t-for="o.label_qty" > ... </t> 有办法做到这一点吗 如果没有,我认为唯一的解决方案是创建一个包含o.label\u quaty元素的虚拟列表,并将其写入foreach中。是的,在Odoo Qweb报告中完全可能您只需添加以下方法即可完成类似的操作 <t t-foreach="o.pack_operation_ids" t-as="l" > &l
<t t-for="o.label_qty" >
...
</t>
有办法做到这一点吗
如果没有,我认为唯一的解决方案是创建一个包含
o.label\u quaty
元素的虚拟列表,并将其写入foreach中。是的,在Odoo Qweb报告中完全可能您只需添加以下方法即可完成类似的操作
<t t-foreach="o.pack_operation_ids" t-as="l" >
<td class="col-xs-1">
<span t-esc="l_index+1"/>
</td>
</t>
听到标记
正在打印时,打印qweb报告时将执行的总次数循环。
索引是Qweb模板引擎的一部分
,因此它总是以0元素开始
我希望我的回答可以帮助您:)t-foreach
指令接受Python表达式。
因此,您可以使用range()
<t t-foreach="range(o.label_qty)" t-as="l">
...
</t>
...
range()函数将引发浮点值错误
例如:
>>>a=1.0
>>>range(a)
>>>Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: range() integer end argument expected, got float.
>a=1.0
>>>射程(a)
>>>回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:应为range()整数结束参数,获得浮点值。
对于动态变量循环,有两种可能使用特定数量的循环
整数(由@Daniel Reis回答)
浮点数(尝试以下选项)
...
如果o.label\u qty存储浮点值,则它将引发错误类型错误:预期为range()整数结束参数,获得浮点值。因此,对于Python3.x,我们必须进行从float到int的类型转换,我相信我们必须使用list(range())
您是对的Odedra。但是我在我的问题中指出,o.label\u qty
是一个整数,所以我认为丹尼尔·赖斯的答案就足够了。谢谢你的贡献
>>>a=1.0
>>>range(a)
>>>Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: range() integer end argument expected, got float.
<t t-set="i" t-value="int(o.label_qty)"/>
<t t-foreach="range(i)" t-as="l">
...
</t>