Az 索引 Django

Mar*_*ark 5 python django

我正在寻找有关使用 A - Z 索引设计网页的建议。

就像 :

http://www.bls.gov/bls/topicsaz.htm 我有一长串带有标题的对象,我想按字母顺序显示,很简单!

但是我想把 AZ 和锚点放在一起,我在模板中做这个,

我必须遍历模板中的所有对象,将 currentletter 存储为全局对象。然后检查每个对象是否以当前字母等开头。

这不好,有没有更简单的方法让我失踪。

也许我应该在 python 代码中做到这一点?

Mar*_*ark 5

查看 django 模板标签,我发现了一个很好的方法{{ifchanged}},值得一提以备将来使用。

我的对象列表按字母顺序传递给我的模板:

Objects.get.all().order_by('title')
Run Code Online (Sandbox Code Playgroud)

然后在我的模板中我做:

# loop through all objects
{% for obj in objs %}
  #display the letter only when it changes
  {% ifchanged obj.title.0 %}<h1>{{obj.title.0}}</h1>{% endifchanged%}
  # display the object
  <h2>obj.title</h2>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

它是模板中非常方便的 1 行代码。