2009-01-28 20 views
16

Estoy buscando agregar un conjunto adicional de páginas a mi sitio de administración autogenerado. Quiero generar informes de mis modelos y algunos registros que lo rodean. La generación real no es el problema.Agregar informes al administrador de Django

¿Cómo puedo:

  1. hacer que la salida del informe parece que es una página de administración, con pan rallado, mesa con formato similar, etc?
  2. ¿Registra la vista para que aparezca en la página principal?
+2

Fabian, tanto como me encanta este juego, la pregunta no tiene absolutamente nada que ver con Python. – Oli

Respuesta

6

La respuesta anterior no se refirió a la pregunta 2, por lo menos directamente ... el camino "hack" para obtener su vista personalizada a aparecer como la primera página de la administración es probable que simplemente anularlo en el URLconf:

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

antes de la línea normal de administrador:

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

la forma "correcta" para d o, sin embargo, es para hacer que su administrador sea una instancia personalizada de AdminSite y anule la configuración index_template. http://docs.djangoproject.com/en/dev/ref/contrib/admin/#root-and-login-templates

+2

OP no solicitó vista personalizada para aparecer AS en la página principal, sino en la página principal. Lo cual es bastante más complejo, ya que implica copiar y modificar la plantilla de índice de administración. –

4

En términos de generar la apariencia de administración, debe ser trivial heredar las páginas principales del administrador e insertar su propio contenido de plantilla en los bloques apropiados.

Eche un vistazo a la marca (incluidos los atributos de identificación y clase) en las páginas de administración predeterminadas e intente comprender cómo se diseñan las cosas de forma coherente. Si incluye el CSS de administrador en la página, debe obtener una gran cantidad de forma gratuita.

Para más información, echa un vistazo a la documentación de administración: http://docs.djangoproject.com/en/dev/ref/contrib/admin/

2

Aquí hay una plantilla base para empezar:

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