Le etichette List_filter per i filtri di chiavi esterne nell'amministratore di django sono sempre ordinate dall'ID e questo può causare un bel casino quando ci sono molti filtri nella lista.Come ordinare le etichette list_filter per i filtri con chiave esterna nell'amministratore di Django?
Sono stato alla ricerca di una soluzione semplice come ordinare quelle etichette in ordine alfabetico o per data per qualche tempo. Sembrava che oltre a usare FilterSpec non ci fosse alcuna soluzione.
Fino a quando non l'ho fatto.
ho cambiato il modello per filter.html (metterlo nella cartella admin nella directory dei modelli) in modo che assomiglia a questo (che si trova da qualche parte sul frammenti di Django immagino):
{% 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>
e poi ho usato 'dictsort: 'nome'' tag modello su ciclo for in modo che il modello, infine, si presentava così:
{% 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>
ho usato selezionare discesa da quando ho avuto molte etichette, ma può essere usato sullo standard ' anche l'elenco. Ora finalmente ho tutti i miei filtri basati su chiave esterna ordinati alfabeticamente (e funziona anche se si usano le date).
Se è necessario il dosting invertito, esiste un tag modello dictsortverso.
Spero che questo aiuti qualcuno.
Si consiglia di [rispondere alla propria domanda] (http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/). La prossima volta sarebbe meglio se pubblichi la tua risposta invece di dare la risposta nella domanda. – FallenAngel