我想按字母顺序使用Jinja过滤器对选择列表中的选项进行排序。我遇到的问题是该列表具有混合大小写的值,并且它不是按字母顺序排列的。我仍然想继续使用忍者过滤器,想知道是否可以通过小写或其他方式进行比较。Jinja按字母顺序排列混合大小写的列表
在目前形式的列表
- 所有源类型
- Android Market的
- Facebook的
- 论坛
- RSS订阅
- Twitter的
- 的YouTube
- iTunes的
神社代码
{% for source,number in sources.items()|sort %}
<option {% if number == user.postfiltertype %} selected {% endif %} value='{{ number }}'>{{ source }}</option>
{% endfor %}
输入
[('iTunes', 8), ('RSS Feeds', 2), ('Twitter Incoming', 9), ('Facebook', 4), ('Android Market', 10), ('All Source Types', 0), ('YouTube', 5), ('Twitter', 3), ('Forums', 1)]
你不想写自己的过滤器?这很容易做到。你的函数可以使用内部排序,它使用一个键字符串转换成大写/小写字母,并比较 – 2012-07-20 19:39:21
我的意思是我可以看到如果Jinja可以做到这一点 – BillPull 2012-07-20 19:42:09