JInja2:如何获得列表的最大/最小值?

时间:2017-06-08 07:01:19

标签: python jinja2

我使用Jinja2创建这样的模板:

enter image description here

在这里,我需要调整条形图的高度,使最长的列达到100%的宽度。也就是说,在我的jinja模板中

<div class="power" style="width:{{ star_4_percent }}"></div>

需要更改

<div class="power" style="width:{{ star_4_percent/max([star_1, star_2, star_3, star4, star_5]) }}"></div>

然而,Jinja似乎不支持max功能,正如我在其docs中看到的那样。我该怎么办?

我在http://docs.ansible.com/ansible/playbooks_filters.html中找到max/min实施,但这不是官方实施。

3 个答案:

答案 0 :(得分:2)

定义计算宽度值的列表。

varchar(10)

然后应用排序过滤器并选择列表中的最后一个元素。

payment

排序过滤器按升序排序,因此通过选择最后一个索引,您将获得最大值。

答案 1 :(得分:1)

改善Zenara的答案,如果你想让它成为单行:

<div class="power" style="width:{{ star_4_percent/(([star_1, star_2, star_3, star4, star_5]|sort)[-1]) }}"></div>

答案 2 :(得分:1)

使用Jnaja2 Filters。您的代码将是:

<div class="power" style="width:{{ star_4_percent/([star_1, star_2, star_3, star4, star_5]|max) }}"></div>