Ярлыки List_filter для фильтров внешнего ключа в django admin всегда упорядочиваются по id, и это может привести к серьезному беспорядку, когда в списке много фильтров.
Я искал простое решение, как упорядочить эти фильтры.метки в алфавитном порядке или по дате в течение некоторого времени.Казалось, что кроме использования FilterSpec для этого нет решения.
Пока я этого не сделал.
Я изменил шаблон для filter.html (поместите его в папку администратора в каталоге шаблонов), чтобы он выглядел так (нашел его где-то в фрагментах django Iугадайте):
{% 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: "name" для цикла, так что шаблон в итоге выглядел так:
{% 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>
Я использовал select drop- так как у меня было много ярлыков, но его можно использовать и в стандартном списке 'ul'.Теперь у меня наконец есть все мои фильтры на основе внешнего ключа, упорядоченные в алфавитном порядке (и это работает, даже если используются даты).
Если вам нужно обратное dosting, есть тег шаблона dictsortreversed для этого.помогает кому-то.