向Django的管理界面添加报告

16

我想在自动生成的管理网站中添加另一组页面。我想从我的模型和一些相关日志中生成报告。实际生成的过程并不是问题所在。

我该如何:

  1. 使报告输出看起来像是一个管理员页面,包括面包屑导航、格式类似的表格等?
  2. 注册视图以便出现在前端页面上?

2
Fabian,虽然我很喜欢这个游戏,但这个问题与Python毫无关系。 - Oli
3个回答

6
上面的回答并没有直接回答问题2...让你的自定义视图显示为管理员前台页面的“hack”方法可能只是在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
OP并不是要求自定义视图显示在首页上,而是要在首页上显示。这更加复杂,因为它涉及到复制和修改管理索引模板。 - Carl Meyer

4

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

查看默认管理员页面中的标记(包括id和class属性),并尝试了解如何一致地进行样式设置。如果在页面上包含管理员CSS,则可以免费获得大量内容。

有关更多信息,请参阅管理员文档:http://docs.djangoproject.com/en/dev/ref/contrib/admin/


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接