我需要树视图中的sum行,并且如果可能的话添加where where条件!
我的树视图:
行| field_1 | field_2
1 | 8 |梅西
2 | 8 |梅西
3 | 8 |罗
4 | 8 |罗
如何仅为梅西而且只为罗纳尔多而得到结果16
在下面的范围内我得到32
<span t-esc="sum(line.field_1 for line in doc.my_ids)" widget="float_time"/>
任何解决方案?
<span t-esc="Messi"/> 16
<span t-esc="Ronaldo"/> 16
答案 0 :(得分:4)
您可以按field_2
对行进行分组,然后为每个field_1
计算player
的总和。
<t t-set="players" t-value="[]"/>
<t t-foreach="doc.my_ids" t-as="l">
<t t-set="players" t-value="players+[l.field_2]"/>
</t>
<t t-foreach="set(players)" t-as="player">
<p>
<span t-esc="player"/>
<t t-set="sum_goal" t-value=0/>
<t t-foreach="doc.my_ids" t-as="l">
<t t-if="player==l.field_2">
<t t-set="sum_goal" t-value=sum_goal+l.field_1/>
</t>
</t>
<span t-esc="sum_goal"/>
</p>
</t>
players
是field_2
的列表。您必须使用set()
删除重复项。