Как добавить новую запись в индекс администратора django? - PullRequest
4 голосов
/ 23 января 2012

Я работаю над проектом Django и создал несколько пользовательских представлений администратора, используя метод переопределения get_urls, описанный в документации .Работает отлично.Есть только одна проблема.Невозможно получить доступ к этому пользовательскому представлению администратора, если вы уже не знаете URL.

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

Я мог бы просто переопределить admin_site или шаблон, но это не хорошо.Это ставит настройку на уровне проекта, а не на уровне приложения.Он также поместит ссылку только на страницу / admin /, а не на страницу / admin / myapp / page.

Я мог бы также легко добавить ссылку в другое место, переопределив шаблон app_index.html, ноэто не совсем удобное или интуитивно понятное место для поиска.

Другое решение, которое я придумал, - создать пустую модель и зарегистрировать для нее пустого администратора.Затем украдите шаблоны URL для этой модели, чтобы щелчок по ее записи переходил в мое пользовательское представление, а не в пустое представление добавления / изменения.Это работает, но это невероятно уродливый взлом.

Вот картинка того, чего я пытаюсь достичь.

Customized Django Admin List

Ответы [ 3 ]

2 голосов
/ 23 января 2012

Я все еще думаю, что правильный способ сделать это - переписать некоторые части шаблонов администратора django. Нет простого способа добавить эти ссылки.

https://docs.djangoproject.com/en/dev/ref/contrib/admin/#overriding-vs-replacing-an-admin-template

Я также нашел эту статью http://coffeeonthekeyboard.com/o-hai-django-adminplus-568/, которая также предполагает, что django-adminplus - хороший инструмент для этого. Лично я предпочитаю избегать любых дополнительных зависимостей и все равно буду использовать шаблоны - но это ваше дело.

0 голосов
/ 23 января 2012

Вам необходимо переопределить шаблон admin / index.html . Затем введите новую пару тегов после {% endfor%} в строке 40 .

Вы также можете решить эту проблему с помощью jQuery.

0 голосов
/ 23 января 2012

Вы пробовали это приложение: https://github.com/jsocol/django-adminplus? Даже если оно не работает для той цели, которую вы пытаетесь достичь, по крайней мере, это может дать вам некоторое облегчение, проверив код

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...