在Django的模板系统中,我如何让它有时做不同的事情?

时间:2010-12-01 09:39:36

标签: python html css django templates

{% for p in posts %}
    <div style="width:50px;">
    blah
    </div>
{% endfor %}

然而,如果我希望div在75%的时间内是100px怎么办? 25%的时间?随机化。

3 个答案:

答案 0 :(得分:2)

random filter应该做的事情

答案 1 :(得分:2)

逻辑不会进入模板。

解决方案:编写一个返回随机数的新模板标记,并将其用于宽度。

http://docs.djangoproject.com/en/1.2/howto/custom-template-tags/

您的模板将如下所示:

{% for p in posts %}
    <div style="width:{% myrandomtag 0 100 %}px;">
    blah
    </div>
{% endfor %}

或者其他什么。将所需的逻辑放在标记的python代码中。

答案 2 :(得分:0)

您可以使用Django的cycle方法:

{% for o in some_list %}
<tr class="{% cycle 'row1' 'row2' %}">
    ...
</tr>
{% endfor %}