Добавление отчетов администратору Django - PullRequest
16 голосов
/ 29 января 2009

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

Как мне:

  1. Сделать вывод отчета похожим на страницу администратора с хлебными крошками, таблицей с похожим форматом и т. Д.?
  2. Зарегистрировать вид, чтобы он отображался на первой странице?

Ответы [ 3 ]

6 голосов
/ 29 января 2009

Приведенный выше ответ не касался вопроса 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

4 голосов
/ 29 января 2009

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

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

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

2 голосов
/ 30 января 2009

Вот базовый шаблон для начала работы:

    {% 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 %}
...