2010-06-03 2 views
7

내 사이트에 대한 사용자 후기가 있습니다. 각 리뷰에는 등급이 1-5 점입니다. 나는 그 많은 별들을 인쇄하고 싶다. 어떻게해야합니까? 목록을 반복 할 수 있지만 특정 횟수만큼 반복 할 수있는 것은 {% for X in Y %}입니다.Django에서 X 회 반복하는 방법은 무엇입니까?

답변

10

사용 Template range filterzalun의 :

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) 
+1

나는 사용자 정의 필터가 필요하다는 일종의 바보 ....하지만 공장. 감사. – mpen

+1

그래, 바보 같지만 넌 네가해야 할 일을 ... – jball

4

사용자 정의 필터 필요 없음 - make_list이 일을 할 것입니다 :

{% for i in '123'|make_list %} 
+2

나는 *이 작동하지 않을 것이라고 확신한다. 그러면'[1,2,3]'* [* 0]이 아닌 [[0,1,2, ..., 122] '를 반환합니다. – mpen

+0

네, 그게 내가 의도 한대로 - OP가 요청한대로. –

+2

나는 OP 다. 나는 그것이 내가 요청한 것이 아니라고 확신한다. 이것은 "특정 횟수"또는 "X 배"에 1에서 5 사이의 (정수) 등급을 부여하는 방법은 무엇인가? – mpen

관련 문제