有没有办法在循环Qweb中从python字典中打印键和值?例如,如果我有一个返回字典的函数:
def get_informations(self):
mydico={'myfirstkey':1,'mysecondkey':2}
return mydico然后,在Qweb报告中:
<t t-foreach="doc.get_informations()" t-as="l">
<tr>
<td class="text-right">
<t t-esc="l"/>
</td>
<td class="text-right">
<span t-esc="l_value"/>
</td>
</tr>
</t>如何打印键和值?
谢谢
更新07/12/15:
谢谢你的回程。没错,当我把
<t t-foreach="{'my': 'first', 'my2': 'second' }" t-as="v">起作用了,我有这样的东西:
my first
my2 second但是,当我在foreach中使用一个函数时,具有完全相同的输出,qweb不能将它分开,我有:
{'my': 'first', 'my2': 'second' }
{'my': 'first', 'my2': 'second' }所以我决定换个办法:
在“继承报表”中
<t t-foreach="doc.tabTaxes" t-as="v">
<tr>
<td>
<span t-esc="v.name"/>
</td>
<td>
<span t-esc="doc.get_amount(v.name)[0]"/>
</td>
</tr>
</t>在sale.order中,模型继承:
@api.one
def get_amount(self, taxeNom):
total=0
for ligne in self.order_line:
for taxe in ligne.tax_id:
if (taxeNom == taxe.name):
try: total += ligne.price_reduce * (taxe.amount/100.)
except: total +=0
return "{0:.2f}".format(total)发布于 2016-02-26 15:19:26
最后,我理解了如何使用V9:
<tr t-foreach="o.get_list_taxe(o.id)[0]" t-as="taxe">
<t t-set="name" t-value="taxe['name']"/>
<t t-set="total" t-value="taxe['total']"/>
<td>
<strong>
<p>
<t t-esc="name"/>
</p>
</strong>
</td>
<td class="text-right">
<t t-esc="total" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/>
</td>
</tr>发布于 2015-12-07 00:53:58
@FTK
考虑到您的函数正在将有效的字典返回到qWeb模板,下面的代码将完成以下工作:
<div id="wrap" class="oe_structure">
<t t-foreach="{'my': 'first', 'my2': 'second' }" t-as="v">
*<t t-esc="v"/> : <t t-esc="v_value"/></t>
</div> 您可以将tr放在循环中,以便按照您的预期创建表行,下面的代码将这样做:
<div id="wrap" class="oe_structure">
<table class="table table-bordered table-condensed">
<t t-foreach="doc.get_informations()" t-as="item">
<tr>
<td class="text-right">
<t t-esc="item"/>
</td>
<td class="text-right">
<t t-esc="item_value"/>
</td>
</tr>
</t>
</table>
</div>您当然不需要按需要分配它们。希望这能帮到你,
击败,
发布于 2015-12-07 13:04:08
正在迭代的对象
当前的迭代值,与列表和整数的$as相同,但对于映射,它提供了值(其中$as提供键)
$as将被传递给t-as的名称所取代。
此链接的参考:https://www.odoo.com/documentation/8.0/reference/qweb.html
https://stackoverflow.com/questions/34122439
复制相似问题