在循环的Django模板中,检查当前项目是不是与前一个项目不同

Posted

技术标签:

【中文标题】在循环的Django模板中,检查当前项目是不是与前一个项目不同【英文标题】: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 为此。几天前我在编写分层页面和类别时经历过这个,所以只是想知道;)干杯。 【参考方案1】:

使用% ifchanged % 标签。

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

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

【讨论】:

非常感谢,这项工作做得非常好! 哥们,你是最棒的 10 年后,仍然是我的问题的确切答案。谢谢

以上是关于在循环的Django模板中,检查当前项目是不是与前一个项目不同的主要内容,如果未能解决你的问题,请参考以下文章

Django - 检查列表是不是包含模板中的某些内容

Django模板ifequal标签

检查元素是不是在模型中 - Django 模板

检查列表中是不是存在数字,应用引擎模板

循环模板的键值 - Django 查询

检查列表 django 模板中是不是存在