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

mvi*_*ari 1 python templates jinja2

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

例:

list = ['val1','val2','val3']  
{{ list|next }}  
{{ list|next }}  
{{ list|next }}  
{{ list|next }}  
Run Code Online (Sandbox Code Playgroud)

输出:

val1  
val2  
val3  
val1  
Run Code Online (Sandbox Code Playgroud)

Mah*_*der 6

文档 v2.1开始,Jinja2允许循环未绑定循环,如文档所示.

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

{% set cycling_list = cycler('val1', 'val2', 'val3') %}
{{ cycling_list.next() }}  
{{ cycling_list.next() }}  
{{ cycling_list.next() }}
Run Code Online (Sandbox Code Playgroud)

还有cycler.resetcycler.current.