在Django模板系统中,如何实现不同的情况做不同的事情?
{% for p in posts %}
<div style="width:50px;">
blah
</div>
{% endfor %}
不过,如果我想让这个div有75%的时间是100像素宽,25%的时间是其他宽度呢?而且这个过程是随机的。
3 个回答
0
你可以使用Django的 cycle 方法:
{% for o in some_list %}
<tr class="{% cycle 'row1' 'row2' %}">
...
</tr>
{% endfor %}
2
random
过滤器 应该能解决这个问题
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代码里。