我想按字母順序使用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