将报告添加到Django的管理员

时间:2009-01-28 21:20:21

标签: django django-admin

我希望在自动生成的管理网站上添加一组额外的页面。我想从我的模型和周围的一些日志生成报告。实际生成不是问题。

我如何:

  1. 让报表输出看起来像是一个管理页面,带有面包屑,类似格式的表格等?
  2. 注册视图以使其显示在首页上?

3 个答案:

答案 0 :(得分:6)

上面的回答没有解决问题2,至少是直接的...“hack”方式让你的自定义视图显示为管理员的首页可能只是在urlconf中覆盖它: / p>

(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

答案 1 :(得分:4)

在生成管理员的外观和感觉方面,继承管理员的父页面并将自己的模板内容插入相应的块应该是微不足道的。

查看默认管理页面中的标记(包括id和class属性),并尝试了解事物的样式是如何一致的。如果你在页面上包含管理员CSS,你应该免费获得大量的。

有关详细信息,请查看管理员文档:http://docs.djangoproject.com/en/dev/ref/contrib/admin/

答案 2 :(得分:2)

这是一个可以帮助您入门的基本模板:

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