Les fichiers HTML peuvent être mis dans dossier nommé "templates" DANS LE
DOSSIER D'UNE APPLICATION, pour être découvert automatiquement.
Par exemple:
project/
└── une_app
└── templates
└── index.html
Alors on pourra utiliser le template render(request, 'index.html',
context).
MAIS !
Si on a une arborescence avec un sous dossier de plus:
project/
└── une_app
└── templates
└── une_app
└── index.html
Alors il faut inclure le sous dossier dans le nom du template: Alors on
pourra utiliser le template render(request, 'my_app/index.html', context).
CECI EST TRES COMMUN.
En effet, toutes les apps ont un template index.html, et comme Django
charge toujours le premiers template qu'il voit, c'est une bonne pratique
de mettre son template dans un dossier portant le nom de son app. De cette
manière, on évite que Django choisisse le mauvais index.html. C'est assez
moche, car du coup on a my_app/templates/my_app/fichier.html mais, c'est le
status quo dans Django.
L'admin utilise ce procédé, et donc pour overrider un fichier.html de
l'admin, il faut créer:
project/
└── une_app
└── templates
└── admin <======= dans VOTRE APP, mettre les overrides ici
└── fichier.html
N'oubliez pas également que l'ordre de chargement des applications a de
l'importance. Je vous recommande donc de mettre votre app AVANT
django.contrib.admin dans INSTALLED_APP si vous souhaitez overrider des
templates?
_______________________________________________
django mailing list
[email protected]
http://lists.afpy.org/mailman/listinfo/django