2014-02-05 3 views
6

У меня есть несколько объектов конфигурации в панели администратора django. Они перечислены в следующем порядкеИзменить порядок объектов модели в панели администратора django

  • Email конфигурации
  • Общие конфигурации
  • Сетев

Каждый объект может быть сконфигурирован отдельно, но все они включены в General config. Поэтому в основном вам понадобится в основном General config, поэтому я хочу переместить его на верх. Я знаю, как упорядочить поля в самой модели, но как изменить порядок моделей?

+2

Я не вижу в этом очевидного решения - модели сортируются по их '_meta.verbose_name_plural', и это происходит в представлении' AdminSite.index', без видимого места для захвата пользовательского кода, за исключением подкласса класс 'AdminSite' и предоставляющий свой собственный метод' index', который, однако, является огромным монолитным методом, _very_ inheritance-недружественным. – lanzz

+0

OK :(Не могли бы вы написать ответ, что это не разумная вещь, поэтому я могу закрыть вопрос? – axe

ответ

3

Я не вижу очевидного решения этого - модели сортируются по их _meta.verbose_name_plural, и это происходит внутри представления AdminSite.index, без видимого места для подцепирования пользовательского кода, за исключением подкласса класса AdminSite и предоставляя свой собственный индексный метод, который, однако, является огромным монолитным методом, очень наследованием - недружественным.

+0

Итак, я только что написал пакет django, который позволит вам переупорядочить ярлык и модель приложения django app/rename имена (включая сторонние приложения) - вы можете скачать его здесь: https://github.com/mishbahr/django-modeladmin-reorder – mishbah

1

Я нашел this snippet for reordering models in the django admin panel - это работает для нас (хотя проверить комментарии ниже фрагмент кода для обновления, чтобы заставить его работать с Django> = 1.4)

И в долгосрочной перспективе есть это django bug report about the ordering of models within apps. Отчет об ошибке открыт на момент написания ответа.

6

Так что я просто написал пакет Джанго, который позволит вам изменить порядок Джанго списка приложений/переименовать ярлык приложения и название модели (в том числе 3-сторонних приложений) - вы можете скачать его здесь:

https://github.com/mishbahr/django-modeladmin-reorder

2

Если вы не против использования грязного трюка, добавьте verbose_name_plural ваших моделей с определенным количеством невидимых zero-width spaces. Например. prepend «Конфигурация электронной почты» с 1 пробелом нулевой ширины, «Общая конфигурация» с 2 и «Конфигурация сети» с 3. Это действительно самый простой метод, и я еще не нашел недостатков.

Смежные вопросы