Как добавить раздел отчета администратору Django?
Я хочу реализовать раздел отчета в администраторе Django. Это означало бы добавление пользовательского раздела на главную страницу администратора, где вместо списка моделей я бы увидел список отчетов. Я хочу использовать таблицы администратора Django с фильтрами, сортировку, все, если это возможно.
Каким был бы "лучший" способ достижения этого? Я понимаю, что это "большой" вопрос, поэтому я не требую фрагментов кода обязательно, резюме необходимых действий будет просто отлично:)
P.S. Будьте отчет, я имею в виду "составленную" модель по пользовательским запросам (запрос или их вызов).
P.S.2 Возможно, этот вопрос должен выглядеть примерно так: Как использовать функциональные возможности Django для таблиц администратора в собственном представлении администратора?
P.S.3 Или, может быть, есть способ предоставить существующий интерфейс администратора моим собственным данным. Таким образом, мне больше не нужно ничего делать. Я просто хочу сказать, что вместо модели возьмите эти данные и отобразите их в хорошей таблице, которую я могу сортировать, фильтровать и т.д. И т.д.
Ответы
Ответ 1
Итак, вы пытаетесь добавить новые страницы в admin django.
В этом разделе объясняется, как вы можете это сделать - https://docs.djangoproject.com/en/dev/ref/contrib/admin/#adding-views-to-admin-sites
Основная идея состоит в том, чтобы добавить новые URL-адреса, которые вы хотите в свой urls.py
, как если бы вы добавляли URL-адреса для своих страниц "front end". Главное отличие заключается в том, что эти новые URL-адреса, которые вы добавляете, должны начинаться с ^admin/
и выглядели бы как ^admin/my_special_link_in_admin
, и этот url укажет на вашу собственную функцию просмотра в том месте, которое вы так предпочитаете.
например.
(r'^admin/my_special_link_in_admin/$', 'my_custom_admin_app.views.special_admin_page'),
Таким образом, это способ полной настройки. Там очень хороший учебник, на который я ссылаюсь здесь - http://brandonkonkle.com/blog/2010/oct/4/django-admin-customization-examples/
Кроме того, если вы не хотите слишком много работать, подумайте об использовании Django Admin Plus - https://github.com/jsocol/django-adminplus
Или django-admin-views - https://github.com/frankwiles/django-admin-views
Ответ 2
Кроме того, есть это приятное приложение:
django-admin-reports
"admin_reports" - это приложение Django, позволяющее легко создавать отчеты агрегации данных для отображения внутри администратора Django.
Администратор Django очень сосредоточен на моделях, и он обеспечивает быстрый и простой способ создания графического интерфейса для интерфейса CRUD, но часто там нужно отображать данные в сводной форме, здесь, где admin_reports удобен.
Идея состоит в том, чтобы иметь класс, похожий на ModelAdmin
(от django.contrib.admin
), который позволяет отображать производные данные, концентрирующиеся на реализации процедуры агрегации.