Как добавить раздел отчета администратору 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), который позволяет отображать производные данные, концентрирующиеся на реализации процедуры агрегации.