【问题标题】:How to make a ranged for loop that iterates over elements in a list in Django如何在 Django 中创建一个循环遍历列表中的元素的范围 for 循环
【发布时间】:2020-09-22 05:34:15
【问题描述】:

我对 Django 3 还很陌生,但我找不到任何答案来显示使用 Django 模板语法以迭代上下文中给定列表中的前五个元素的最佳方法。

为了澄清,我正在寻找一种方法来做到这一点:

(在上下文中给出以下列表["one", "two", "three", "four", "five", "six"]) 我想以类似于这个普通 Python 代码的方式显示前五个元素:

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

如果有人可以尝试向我展示如何打破模板中的循环(如果可能的话),我什至会很感激。 有没有办法做到这些?

【问题讨论】:

  • {% for item in list %} <p>{{ item }}</p> {% endfor %}。而迭代list 的pythonic 方式是for item in list:..print(item)
  • 我知道这一点,但问题是我需要迭代所有元素,而只迭代前五个...
  • 您可以使用forloop.counter0 来检查当前的迭代计数器,我认为

标签: python django django-templates django-3.0 django-3.1


【解决方案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_withdjango_template_slice

    【讨论】:

      猜你喜欢
      • 2015-01-07
      • 1970-01-01
      • 2018-12-24
      • 2016-01-01
      • 2022-01-06
      • 1970-01-01
      • 1970-01-01
      • 2016-01-26
      • 1970-01-01
      相关资源
      最近更新 更多