创建类似于loop.cycle()的Jinja变量/过滤器

时间:2011-03-07 22:08:47

标签: python templates jinja2

我正在尝试创建一个自定义的Jinja变量,该变量将在每次使用时循环显示值列表。这与loop.cycle('a','b','c')类似,不同之处在于我不在for循环中。

示例:

list = ['val1','val2','val3']  
{{ list|next }}  
{{ list|next }}  
{{ list|next }}  
{{ list|next }}  

输出:

val1  
val2  
val3  
val1  

1 个答案:

答案 0 :(得分:5)

Jinja2,自v2.1起,允许循环未绑定循环,as the documentation shows.

在您的示例中,您将执行以下操作:

{% set cycling_list = cycler('val1', 'val2', 'val3') %}
{{ cycling_list.next() }}  
{{ cycling_list.next() }}  
{{ cycling_list.next() }}

还有cycler.resetcycler.current