Estoy trabajando en un sitio de Django que tiene múltiples secciones y subsecciones. Me gustaría tener varias profundidades de herencia de plantillas: una plantilla base para todo el sitio, una plantilla base para cada sección que hereda de la plantilla raíz y así sucesivamente. Aquí hay una versión simplificada de la estructura de mi directorio deseado:Django: especificando una plantilla base por directorio
base.html
section1/
base.html
section2/
base.html
section3/
base.html
Lo que yo deseo es que todos los archivos bajo section1/
para contener algo así como {% extends "base.html" %}
, lo que significa que se extenderían section1/base.html
. section1/base.html
contendría algo así como {% extends "../base.html" %}
, lo que significa que extendería el archivo base de nivel raíz. Sin embargo, no pude encontrar nada en la documentación que sugiriera que esto fuera posible, y no pude hacer que Django distinguiera entre "../base.html"
y "base.html"
. ({% extends "../base.html" %}
arroja un error.) Supongo que una solución sería cambiar el nombre de todos los archivos base base_SECTIONNAME.html
y actualizar todos los archivos que hereden de ellos, pero me preocupa que esto pueda volverse difícil de mantener a medida que mi sitio crezca y las secciones cambien de nombre. , etc. Preferiría una solución que aproveche la jerarquía natural especificada por directorios y subdirectorios.
¿Alguna idea?
Derecha ... las rutas relativas no funcionarán con extends. –
Y no pueden, porque puede tener plantillas en varios lugares. –
Vale la pena mencionar que todas las carpetas (/ root,/root/section1,/root/section2, ...) deben configurarse como django TEMPLATE_DIRS, de lo contrario, no funciona. –