2009-01-28 7 views
16

Je cherche à ajouter un ensemble de pages supplémentaires à mon site d'administration généré automatiquement. Je veux générer des rapports sur mes modèles et certains journaux qui l'entourent. La génération réelle n'est pas le problème.Ajouter des rapports à l'administrateur de Django

Comment puis-je:

  1. rendre la sortie du rapport ressemble, il est une page d'administration, avec panure, table de la même forme, etc?
  2. Enregistrez la vue pour qu'elle apparaisse sur la première page?
+2

Fabian, autant que je l'aime ce jeu, la question n'a absolument rien à voir avec Python. – Oli

Répondre

6

La réponse ci-dessus n'a pas abordé la question 2, au moins directement ... la façon « hack » pour obtenir votre vue personnalisée pour apparaître comme la première page de l'administrateur est probablement de passer outre juste dans l'URLconf:

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

avant la ligne d'administration normale:

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

la « bonne » à d Cependant, il s'agit de faire de votre admin une instance personnalisée d'AdminSite et de remplacer le paramètre index_template. http://docs.djangoproject.com/en/dev/ref/contrib/admin/#root-and-login-templates

+2

OP n'a pas demandé d'affichage personnalisé pour apparaître comme la première page, plutôt sur la première page. Ce qui est plutôt plus complexe, car cela implique de copier et de modifier le modèle d'index admin. –

4

En termes de génération de l'apparence de l'administrateur, il devrait être trivial d'hériter des pages parent de l'admin et d'insérer votre propre contenu dans les blocs appropriés. Jetez un coup d'œil sur le balisage (incluant les attributs id et class) dans les pages d'administration par défaut et essayez de comprendre comment les objets sont stylés de façon cohérente. Si vous incluez le CSS de l'administrateur sur la page, vous devriez en avoir une bonne partie gratuitement.

Pour plus d'informations, consultez la documentation admin: http://docs.djangoproject.com/en/dev/ref/contrib/admin/

2

Voici un modèle de base pour vous aider à démarrer:

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