2016-11-26 1 views
1

J'essaie d'ajouter un bouton personnalisé dans la page d'administration de changejlist django à côté de l'objet add en haut de la page.Étendre le modèle d'administration django

{% extends "admin/change_list.html" %} 
{% load i18n %} 
{% block object-tools-items %} 
{{ block.super }} 
<li> 
    <button class="" href="...">Click Here!</button> 
</li> 
{% endblock %} 

J'ai suivi beaucoup de tutoriels mais sans succès. Je 'APP_DIRS': True, dans mon settings.py et mon projet est comme:

project/ 
    app/ 
     templates/ 
      change_list.html 
      custom_template.html 

Le custom_template.html est une action en change_list, et il fonctionne. Ai-je raté quelque chose?

EDIT:

déjà essayé:

projet/app/templates/admin/change_list.htmlprojet/app/templates/app/admin/change_list.html

Ne fonctionnait pas non plus.

+0

Based Sur cette question, il semblerait que vous ayez oublié de spécifier le nom de l'application dans la balise d'extension http://stackoverflow.com/questions/6583877/how-to-override-and-extend-basic-django-admin-templates – Wonskcalb

Répondre

1

change_list.html outrepasser la vie de fichier à cet endroit:

projet /app/templates/admin/app/change_list.html

Vous l'avez presque. :)

Vous pouvez également utiliser django-debug-toolbar et obtenir les modèles réels qui ont été téléchargés du côté du navigateur.

0

changement que vous emplacement modèle pour projet/templates/admin/change_list.html

dans le modèle 'change_list.html' écrire

{% extends 'admin/base.html' %} 
{% block branding %} 
<h1 id="site-name">My custom Admin</h1> 
{% endblock %} 

et setting.py

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
TEMPLATES = [ 
{ 
    'DIRS': [os.path.join(BASE_DIR, 'templates')], 
}]