代码之家  ›  专栏  ›  技术社区  ›  Mat

Django for循环有多灵活?

  •  3
  • Mat  · 技术社区  · 17 年前

    我在模板中输出一系列Django对象:

    {% for obj in list %}
        ...
    {% endfor %}
    

    <DIV>. 我的想法是,在需要之前,我可以隐藏下半场。

    我设想这样的东西,但需要限制迭代的元素:

    {% for obj in list %}
        ...
    {% endfor %}
    
    <a href="" onclick="unhide()">Show hidden</a>
    <div id="hidden">
        {% for obj in list %}
            ...
        {% endfor %}
    </div>
    

    是否可以仅在模板内完成此操作?这是演示逻辑,所以我宁愿不污染视图。

    3 回复  |  直到 17 年前
        1
  •  16
  •   Paolo Bergantino    17 年前

    你可以使用 slice :

    {% for obj in list|slice:":5" %}
        ...
    {% endfor %}
    
    <a href="" onclick="unhide()">Show hidden</a>
    <div id="hidden">
        {% for obj in list|slice:"5:" %}
            ...
        {% endfor %}
    </div>
    
        2
  •  7
  •   Andy Baker    17 年前

    context = {
      'visible_list': mylist[:5],
      'hidden_list': mylist[5:]
    }
    

        3
  •  2
  •   Alex Martelli    17 年前

    当然,例如,你可以做两次循环,并在其中使用 forloop.counter if <= 5 > 5 (记住它是从1开始的——如果你想要一个从0开始的,请使用 forloop.counter0

    推荐文章