我试图找出,如何使用不同的随机值多次包含一个模板。
我有一个模板:
<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在每次包含之前重新渲染包含?
答案 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
这将为您执行的每个包含生成随机数,并且应该为您提供您所追求的结果。