如何使用包含相同文件的twig多次获取随机值

时间:2018-05-22 07:49:07

标签: random include twig

我试图找出,如何使用不同的随机值多次包含一个模板。

我有一个模板:

<div class="include-1">
  {% include 'include.twig' %}
</div>
<div class="include-2">
  {% include 'include.twig' %}
</div>
<div class="include-3">
  {% include 'include.twig' %}
</div>

在include.twig中我有:

<span>
  {{ random(10) }}
</span>

预期结果(跨度中的数字应在0-10范围内随机):

<div class="include-1">
  <span>1</span>
</div>
<div class="include-2">
  <span>2</span>
</div>
<div class="include-3">
  <span>3</span>
</div>

实际结果(第一个包括获取随机值,但它只是“缓存”):

<div class="include-1">
  <span>1</span>
</div>
<div class="include-2">
  <span>1</span>
</div>
<div class="include-3">
  <span>1</span>
</div>

我已经测试过包含,嵌入等等,但无济于事。 我正在寻找基于树枝的解决方案。无法触及PHP。 作为一个后备,我可以用JS做,但有兴趣,如果这样的事情可以做到它Twig。

问题:

有没有办法强制Twig在每次包含之前重新渲染包含?

1 个答案:

答案 0 :(得分:0)

尝试将随机数函数作为值传递给每个include语句,例如:

qs = Quiz.objects.all()
obj = qs.filter(name__istartswith="What is the answer to the universer an everything")
if answer == obj.correct:
    #he is right
    #maybe save to session
else:
    #wrong

然后,在<div class="include-1"> {% include 'include.twig' with {'random': random(10) } %} </div> 文件中:

include.twig

这将为您执行的每个包含生成随机数,并且应该为您提供您所追求的结果。