我正在尝试使用 Jinja 过滤器按字母顺序对选择列表中的选项进行排序。我遇到的问题是该列表具有混合大小写值,并且它不是按字母顺序显示的。我仍然想继续使用 jinja 过滤器,想知道是否可以通过小写或其他方式进行比较。
当前形式的列表
金贾密码
{% 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)
您可以在之后添加以下内容|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