Django - 在模板中将列表排序为三列
我的模型:
Item:
name
desc
order
created_at
我从Item那里得到了一个物品列表,像这样:
items = Item.objects.all().order_by('order', '-created_at')
现在我把这个列表发送到模板中。但是我需要按照一定的模式对它进行排序。例如:
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
</ul>
<ul>
<li>item 4</li>
<li>item 5</li>
<li>item 6</li>
</ul>
<ul>
<li>item 7</li>
</ul>
还有更少的物品:
<ul>
<li>item 1</li>
<li>item 2</li>
</ul>
<ul>
<li>item 3</li>
<li>item 4</li>
</ul>
<ul>
<li>item 5</li>
</ul>
或者缩短:
<ul>
<li>item 1</li>
</ul>
<ul>
<li>item 2</li>
</ul>
<ul>
<li>item 3</li>
</ul>
有什么想法吗?谢谢你的帮助!
更新:添加了一些反思
<ul>
<li>item 1</li>
<li>item 2</li>
</ul>
<ul>
<li>item 3</li>
</ul>
<ul>
<li></li>
</ul>
或者
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
</ul>
<ul>
<li>item 4</li>
</ul>
<ul>
<li>item 5</li>
</ul>
或者
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
<li>item 4</li>
</ul>
<ul>
<li>item 5</li>
<li>item 6</li>
</ul>
<ul>
<li>item 7</li>
</ul>
3 个回答
0
我不太明白你们分组的标准是什么,是不是只是每3个一组循环?如果是这样的话,我觉得你可以用循环模板标签来解决这个问题:
http://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs#cycle
2
我昨天做了这个。
{% for link in footer_links %}
{% if forloop.first or forloop.counter0|divisibleby:"6" %}
<ul>
{% endif %}
<li><a href='{{ link.href }}'>{{ link.title }}</a></li>
{% if forloop.last or forloop.counter|divisibleby:"6" %}
</ul>
{% endif %}
{% endfor %}
虽然它没有完全做到三列,但它把链接分成了长度为6的列表。
2
你有没有查看过关于分割列表的各种代码片段?