如何按字母顺序对此django模板代码的输出进行排序?

时间:2011-05-31 16:16:58

标签: python django

我在django模板中有以下代码:

{% for object in object_list %}
{% with game=object.game %}

<a href="{% url game_view game.id game.title|slugify %}" class="img_link alphabeticList">{{game.title}}</a>

{% endwith %}
{% endfor %}

它输出当前类别中的所有游戏,例如:

Armor Dude
Midnight Strike
Super Mafia Bros
Mission To Mars
Zed
game1 test 3
Examine the mystery of the crime in Apartment 13
Manor Freedom : The Patron's Chamber
Escape Journey
Outrun Summer Camp
Make your way through zombies hordes
Intelligent Guy
Run 3D : The Bathroom
Lady Gaga Escape Game
Insane Box
Will you do me A Small Favor?
Shanty Breakout
Cloudy Tumble Second Chaptert
Hotel Area Lock In
Escape From the Aircraft Hangar
RANDOM GAMES
Scene of the Caper: Gold Toy Scene of the Caper: ...    
Escape Journey Escape Journey
Cloudy Tumble Second Chaptert Cloudy Tumble Second...   
Midnight Strike Midnight Strike
BB EXCLUSIVES
Soldier Of Pain Soldier Of Pain     
Walk The Stork Walk The Stork

如何在每个游戏标题开头的字母下按字母顺序排序输出,例如:

A
---

Apple
Alligator

B
---

Burger
Bungee
Bear

C
---

cat

依旧......

请注意,我只能使用模板标签,并且无权访问任何python代码。

1 个答案:

答案 0 :(得分:2)

我讨厌在模板中投入太多逻辑。通常我会将列表分组在视图中,或者有一个自定义标记来处理我的处理。我真的不知道这样的事情会起作用,但也许切片,dicsorting和重新组合的某种组合可以得到你所需要的东西吗?

如果没有那么也许javascript可能是你唯一的方式;虽然这当然不推荐。

{% regroup object_list|dictsort:"game.title" by game.title|upper|slice:"0" as grouped_list %}

{% for group in grouped_list %}
  <p>{{ group.grouper }}</p>

  {% for game in group.list %}
  <a href="{% url game_view game.id game.title|slugify %}" class="img_link alphabeticList">{{ game.title }}</a>
  {% endfor %}
{% endfor %}