存储Jinja过滤器的结果

时间:2011-11-30 16:51:05

标签: set jinja2

我尝试做的基本操作是使用'随机'过滤器从我的列表中选择一个随机项目,但后来我想在多个位置使用随机选择的项目。

如何将过滤器的结果设置为可在多个位置使用的变量。

如果我多次调用'随机'过滤器,那么它们几乎没有相同的可能性。

基本上我想做的事情:

{% set image = {{ images | random }} %}

显然这不起作用。

3 个答案:

答案 0 :(得分:10)

使用不带{{ }}分隔符的过滤器。

{% set image = images|random %}

Jinja将 globals filters 存储在两个不同的命名空间(词典)中,这样可以防止它们被互换使用。

答案 1 :(得分:3)

Jinja中的

|只是将变量传递给函数。只需调用该函数即可:

{% set image = random(images) %}

答案 2 :(得分:0)

它无法循环运行,我使用了以下代码:

{% set result = result | replace('x','y') %}