在Django模板系统中,如何实现不同的情况做不同的事情?

0 投票
3 回答
753 浏览
提问于 2025-04-16 07:52
{% 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代码里。

撰写回答