Jinja 按字母顺序对大小写混合的列表进行排序

Bil*_*ull 2 python jinja2

我正在尝试使用 Jinja 过滤器按字母顺序对选择列表中的选项进行排序。我遇到的问题是该列表具有混合大小写值,并且它不是按字母顺序显示的。我仍然想继续使用 jinja 过滤器,想知道是否可以通过小写或其他方式进行比较。

当前形式的列表

  • 所有来源类型
  • 安卓市场
  • Facebook
  • 论坛
  • RSS订阅
  • 推特
  • YouTube
  • iTunes

金贾密码

{% for source,number in sources.items()|sort %}
        <option {% if number == user.postfiltertype %} selected {% endif %} value='{{ number }}'>{{ source }}</option>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

输入

[('iTunes', 8), ('RSS Feeds', 2), ('Twitter Incoming', 9), ('Facebook', 4), ('Android Market', 10), ('All Source Types', 0), ('YouTube', 5), ('Twitter', 3), ('Forums', 1)] 
Run Code Online (Sandbox Code Playgroud)

Mar*_*Wit 5

您可以在之后添加以下内容|sort

(case_sensitive=False)
Run Code Online (Sandbox Code Playgroud)

所以你得到:

{% for source,number in sources.items()|sort(case_sensitive=False) %}
Run Code Online (Sandbox Code Playgroud)

看:

http://jinja.pocoo.org/docs/templates/#filters