Как зациклить X раз в Django? - PullRequest
7 голосов
/ 04 июня 2010

У меня есть отзывы пользователей на моем сайте. Каждый отзыв имеет рейтинг 1-5 звезд. Я хочу напечатать столько звезд. Как мне это сделать? Я вижу только {% for X in Y %}, который позволяет перебирать список, но не определенное количество раз.

Ответы [ 2 ]

10 голосов
/ 04 июня 2010

Используйте Фильтр диапазона шаблонов от 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 )
4 голосов
/ 04 июня 2010

Нет необходимости в настраиваемом фильтре - make_list сделает работу:

{% for i in '123'|make_list %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...