【问题标题】:In a Django template for loop, checking if current item different from previous item在循环的Django模板中,检查当前项目是否与前一个项目不同
【发布时间】:2011-04-28 12:32:21
【问题描述】:

我是 django 的新手,无法找到让它在 django 模板中工作的方法。这个想法是检查以前项目的首字母是否与当前项目相同,如下所示:

{% for item in items %}
    {% ifequal item.name[0] previous_item.name[0] %}
        {{ item.name[0] }}
    {% endifequal %}
    {{ item.name }}<br />
{% endforeach %}

也许我试图以错误的方式做到这一点,有人可以指出我正确的方向。

【问题讨论】:

  • 我会发布一个题外话的迷你答案 - 如果你想做一些“嵌套”的事情,那么放弃 .objects 的东西并使用 .tree - 你必须安装 django- mptt 为此。几天前我在编写分层页面和类别时经历过这个,所以只是想知道;)干杯。

标签: python django django-templates


【解决方案1】:

使用{% ifchanged %} 标签。

{% for item in items %}
    {% ifchanged item.name.0 %}
        {{ item.name.0 }}
    {% endifchanged %}
{% endfor %}

还请记住,您必须始终使用点语法 - 方括号不是有效的模板语法。

【讨论】:

  • 非常感谢,这项工作做得非常好!
  • 哥们,你是最棒的
  • 10 年后,仍然是我的问题的确切答案。谢谢
猜你喜欢
  • 2013-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-11
  • 2022-12-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多