Django ListView,通过修改“current_category”变量将列表拆分为模板中的类别

时间:2018-02-27 20:02:09

标签: python django python-3.x django-templates

我真的不知道如何表达我的问题,但我想要做的是在项目之间添加一个标题,将它们分成我模板上的明显类别。我想这样做:

<h1>Cat 1</h1>
<p>item</p>
<p>item</p>
...
<h1>Cat 2</h1>
<p>item</p>
..

然后结束:

{{1}}

我在类似的答案中看到有一些叫做custom filterssimple tags的东西,但对于一些非常简单的东西来说似乎很复杂。这真的是唯一的方法吗?

注意:我已按课程类别

订购了这些项目

1 个答案:

答案 0 :(得分:1)

我认为你正在寻找Django的regroup模板标签,它完全符合你的要求。

{% regroup items by category as grouped_items %}

{% for category, item_list in grouped_items %}
  <h1>{{ category }}</h1>
  {% for item in item_list %}
    <p>{{ item.name }}</p>
  {% endfor %}
{% endfor %}