Как создать ранжированный цикл for, который перебирает элементы в списке в Django

#python #django #django-templates #django-3.0 #django-3.1

#python #django #django-шаблоны #django-3.0 #django-3.1

Вопрос:

Я довольно новичок в Django 3, но я не смог найти ответа, который показывает наилучший способ использования синтаксиса шаблона Django для перебора первых пяти элементов в списке, приведенном в контексте.

Для пояснения, я ищу способ сделать это:

(учитывая следующий список в контексте ["one", "two", "three", "four", "five", "six"] ) Я хочу отобразить первые пять элементов способом, аналогичным этому ванильному коду Python:

 for item in range(5):
    print(list[item])
  

Я был бы даже признателен, если бы кто-нибудь попытался показать мне, как разорвать цикл в шаблонах (если это вообще возможно).
Есть ли способ сделать что-либо из этого?

Комментарии:

1. {% for item in list %} <p>{{ item }}</p> {% endfor %} . И pythonic способ итерации a list будет for item in list:..print(item)

2. Я знаю об этом, но проблема в том, что мне нужно перебирать не ВСЕ элементы, а только первые пять…

3. я думаю, вы можете использовать forloop.counter0 для проверки текущего счетчика итераций

Ответ №1:

Вы можете сделать:

 {% for item in list%}
    {% if forloop.counter < 6}
        // Do what you need
    {% endif %}
{% endfor %}
  

Ответ №2:

Попробуйте:

 {% with new_list=list|slice":5" %}
    {% for item in new_list %} 
        <h1>Check</h1>
    {% endfor %}
{% endwith %}
  

Смотрите: django_template_with и django_template_slice