Примечания к выпуску для Django 1.4 говорят, что Django теперь поддерживает Multiple sort in admin interface
:
Список изменений администратора теперь поддерживает сортировку по нескольким столбцам. Это
уважает все элементы атрибута упорядочения и сортировки по
несколько столбцов, нажав на заголовки, предназначен для имитации
поведение настольных графических интерфейсов.
А из ModelAdmin заказывает :
Установите ordering
, чтобы указать порядок упорядочения списков объектов в
Джанго админ просмотров. Это должен быть список или кортеж в том же формате
в качестве параметра ordering
модели. [...] Джанго чтит все элементы в списке / кортеже; до 1.4 уважалось только первое.
На полусвязанной заметке - если вы переопределяете queryset
для предоставления пользовательского порядка сортировки, кажется, что Changelist
переопределит этот порядок сортировки. Он применяет любую сортировку, найденную в параметре ordering
, и, если ее нет, применяет сортировку по умолчанию на pk
, тем самым сводя на нет любую сортировку, которую вы делали в queryset
.
Я думаю это должно сработать - по крайней мере этот Билет Django говорит исправлено . Но я просто пытался применить пользовательскую сортировку, используя queryset
несколько дней назад, и у меня это не сработало. Даже сортировка по одному полю, казалось, была переопределена в конечном виде. Так что либо я сделал что-то не так, либо это не все исправлено. :)
Обратите внимание, что позволяет выполнять пользовательскую сортировку с помощью кода, но вы должны создать подкласс Changelist
и переопределить его get_query_set()
метод согласно этого фрагмента . (Хотя это излишне, если вам нужно отсортировать только несколько полей, поскольку Django 1.4 теперь поддерживает несколько полей).