6
Django admin中的外鍵過濾器的List_filter標籤總是按id排序,並且當列表中有很多過濾器時會導致相當混亂。如何在Django admin中對外鍵過濾器的list_filter標籤進行排序?
我一直在尋找簡單的解決方案,如何按字母順序或按日期排序這些標籤一段時間。似乎除了使用FilterSpec之外,沒有解決方案。
直到我做到了。
我已經改變了filter.html(把它放在你的模板目錄管理文件夾)的模板,以便它看起來像這樣(發現它Django的片段我猜某處):
{% load i18n %}
<h3>{% blocktrans with title as filter_title %} By {{ filter_title }} {% endblocktrans %}</h3>
<div align="right">
<select onChange="javascript:window.location = this.options[this.selectedIndex].value;" style="width: 80%">
{% for choice in choices %}
<option {% if choice.selected %}selected{% endif %} value="{{ choice.query_string|iriencode }}">
{{ choice.display }}
</option>
{% endfor %}
</select>
</div>
然後我使用「dictsort:‘名稱’」關於循環,使模板終於盼來這樣的模板標籤:
{% load i18n %}
<h3>{% blocktrans with title as filter_title %} By {{ filter_title }} {% endblocktrans %}</h3>
<div align="right">
<select onChange="javascript:window.location = this.options[this.selectedIndex].value;" style="width: 80%">
{% for choice in choices|dictsort:"display" %}
<option {% if choice.selected %}selected{% endif %} value="{{ choice.query_string|iriencode }}">
{{ choice.display }}
</option>
{% endfor %}
</select>
</div>
,因爲我有很多唱片公司我都用過選擇下拉,但它可以在標準的「使用ul'列表。現在我終於擁有了所有基於外鍵的過濾器按字母順序排列(即使使用日期,它也能正常工作)。
如果您需要反轉劑量,那麼會出現dictsortreversed模板標籤。
希望這可以幫助某人。
鼓勵[回答你自己的問題](http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/)。下次如果你發佈自己的答案,而不是在問題中給出答案,會更好。 – FallenAngel 2012-09-08 13:39:40