2011-05-14 35 views
3

我的模型:Django的 - 对列表进行排序成3列的模板

Item: 
    name 
    desc 
    order 
    created_at 

而且我得到了项目的列表从项目这样的:

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> 

任何想法?感谢帮助!

UPDATE:加思考

<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> 

回答

0

我完全不明白,就是确定分组的标准 - 是它的字面只是骑自行车3?如果是这样,我认为周期模板标签是你在找什么:

http://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs#cycle

+0

权是始终小于或等于左边。我要添加一些思考。 – anhtran 2011-05-14 18:28:49

+0

我很抱歉,我仍然不明白潜在的愿望 - 你能解释这些物品是如何分发的吗? – jMyles 2011-05-14 20:28:52

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)