我有以下模型:
class Blog():
year = models.PositiveSmallIntegerField()
title = models.Charfield(max_length=40)
现在在我的模板中,我目前显示的字段值如下:
{% for blog in blogs %}
{% ifchanged %}
<li>{{blog.year}}</li>
{% endifchanged %}
<li><a href="#">{{ blog.title }}</a></li>
{% endfor %}
这给了我以下html输出:
<ul>
<li>2016</li>
<li><a href="#">title 1</a></li>
<li><a href="#">title 2</a></li>
<li>2012</li>
<li><a href="#">title 3</a></li>
</ul>
但我想得到的是以下内容:
<ul>
<li>2016
<ul>
<li><a href="#">title 1</a></li>
<li><a href="#">title 2</a></li>
</ul>
</li>
<li>2012
<ul>
<li><a href="#">title 3</a></li>
</ul>
</li>
</ul>
有没有办法在django模板中执行此操作?
答案 0 :(得分:3)
您可以使用regroup
{% regroup blogs by year as blog_list %}
<ul>
{% for blog in blog_list %}
<li>{{ blog.grouper }}
<ul>
{% for item in blog.list %}
<li><a href="#">{{ item.title }}</a></li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>