Sto lavorando a un sito Django che ha più sezioni e sottosezioni. Mi piacerebbe avere diverse profondità di ereditarietà del modello: un modello di base per l'intero sito, un modello di base per ogni sezione che eredita dal modello di base radice e così via. Ecco una versione semplificata della mia struttura di directory desiderata:Django: specifica un modello base per directory
base.html
section1/
base.html
section2/
base.html
section3/
base.html
Che cosa voglio è per tutti i file sotto section1/
per contenere qualcosa come {% extends "base.html" %}
, nel senso che estenderebbero section1/base.html
. section1/base.html
conterrebbe qualcosa come {% extends "../base.html" %}
, il che significa che estenderebbe il file di base a livello di radice. Tuttavia, non ho trovato nulla nella documentazione che suggerisca che fosse possibile, e non ho potuto fare in modo che Django distinguesse tra "../base.html"
e "base.html"
. ({% extends "../base.html" %}
genera un errore). Suppongo che una soluzione alternativa sarebbe rinominare tutti i file di base base_SECTIONNAME.html
e aggiornare tutti i file che li ereditano, ma sono preoccupato che questo possa diventare difficile da mantenere man mano che il mio sito diventa più grande e le sezioni cambiano nome , ecc. Preferirei una soluzione che sfrutta la gerarchia naturale specificata da directory e sottodirectory.
Qualche idea?
Giusto ... i percorsi relativi non funzioneranno con le estensioni. –
E non possono, perché è possibile avere modelli in varie posizioni. –
Vale la pena ricordare che tutte le cartelle (/ root,/root/section1,/root/section2, ...) devono essere impostate come django TEMPLATE_DIRS altrimenti non funziona. –