如何在 Jinja 模板中获取列表的最大值/最小值?

cqc*_*991 1 python jinja2

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

在此处输入图片说明

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

<div class="power" style="width:{{ star_4_percent }}"></div>
Run Code Online (Sandbox Code Playgroud)

需要更改为

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

但是,max正如我在其文档中看到的那样,Jinja 似乎不支持该功能。我该怎么办?

max/minhttp://docs.ansible.com/ansible/playbooks_filters.html 中找到了实现,但这不是官方实现。

小智 6

使用Jnaja2 过滤器。您的代码将是:

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


小智 2

定义计算宽度值的列表。

{% set width_list = [star_4_percent/star_1, star_4_percent/star_2, star_4_percent/star_3, star_4_percent/star4, star_4_percent/star_5] %}

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

<div class="power" style="width:{{ width_list[-1] | sort }}"></div>

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