【发布时间】:2010-06-03 20:47:03
【问题描述】:
我的网站上有用户评论。每条评论的评分为 1-5 星。我想打印那么多星星。我该怎么做?我只看到{% for X in Y %},它可以让你遍历一个列表,但不是一定次数。
【问题讨论】:
我的网站上有用户评论。每条评论的评分为 1-5 星。我想打印那么多星星。我该怎么做?我只看到{% for X in Y %},它可以让你遍历一个列表,但不是一定次数。
【问题讨论】:
使用Template range filter by zalun:
from django.template import Library
register = Library()
@register.filter
def get_range( value ):
"""
Filter - returns a list containing range made from given value
Usage (in template):
<ul>{% for i in 3|get_range %}
<li>{{ i }}. Do something</li>
{% endfor %}</ul>
Results with the HTML:
<ul>
<li>0. Do something</li>
<li>1. Do something</li>
<li>2. Do something</li>
</ul>
Instead of 3 one may use the variable set in the views
"""
return range( value )
【讨论】:
不需要自定义过滤器 - make_list 将完成这项工作:
{% for i in '123'|make_list %}
【讨论】:
[1,2,3] not [0,1,2,...,122].