Подтвердить что ты не робот

Добавление отчетов в администратор Django

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

Как я:

  • Сделать вывод отчета похожим на страницу администратора, с панировочными сухарями, аналогично отформатированной таблицей и т.д.
  • Зарегистрировать представление, чтобы оно отображалось на первой странице?
4b9b3361

Ответ 1

В приведенном выше ответе не был задан вопрос 2, по крайней мере, прямо... способ "взломать", чтобы ваше пользовательское представление отображалось как первая страница администратора, вероятно, просто переопределяет его в urlconf:

(r'^admin/$', my.custom.admin.homepage),

перед нормальной линией администратора:

(r'^admin/', admin.site.root),

"правильный" способ сделать это, однако, состоит в том, чтобы сделать ваш администратор настраиваемым экземпляром AdminSite и переопределить параметр index_template. http://docs.djangoproject.com/en/dev/ref/contrib/admin/#root-and-login-templates

Ответ 2

С точки зрения создания внешнего вида администратора, тривиально наследовать родительские страницы администратора и вставлять собственный контент шаблона в соответствующие блоки.

Взгляните на разметку (включая атрибуты id и class) на страницах администрирования по умолчанию и попытайтесь понять, как вещи последовательно стилизованы. Если вы включите CSS-админ на странице, вы должны получить ужасную его часть бесплатно.

Для получения дополнительной информации ознакомьтесь с документами администратора: http://docs.djangoproject.com/en/dev/ref/contrib/admin/

Ответ 3

Вот базовый шаблон для запуска:

    {% extends "admin/base_site.html" %}
    {% load adminmedia %}

    {% block extrahead %}
    {% endblock %}
    {% block coltype %}flex{% endblock %}
    {% block bodyclass %}change-list{% endblock %}
    {% block stylesheet %}{% admin_media_prefix %}css/changelists.css{% endblock %}
    {% block extrastyle %}
    <link rel="stylesheet" type="text/css" href="{{settings.MEDIA_URL}}/stylesheets/extra_admin.css" />
    {% endblock %}
    {% block breadcrumbs %}<div class="breadcrumbs"><a href="/admin/">Home</a>&nbsp;&rsaquo;&nbsp;{{page_title}}</div>{% endblock %}
    {% block content %}
    <div id="content-main">
        <h1>{{page_title}}</h1>
        {{page_content}}
    </div>
    {% endblock %}