Pracuję w witrynie Django, która ma wiele sekcji i podsekcji. Chciałbym mieć kilka głębokości dziedziczenia szablonów: szablon podstawowy dla całej witryny, jeden szablon podstawowy dla każdej sekcji dziedziczącej z szablonu podstawowego katalogu głównego i tak dalej. Oto uproszczona wersja mojego pożądanej struktury katalogów:Django: określenie szablonu bazowego według katalogu
base.html
section1/
base.html
section2/
base.html
section3/
base.html
Co bym pragnienie jest dla wszystkich plików w section1/
się zawierać coś {% extends "base.html" %}
, co oznacza, że rozciągają się one section1/base.html
. section1/base.html
zawierałoby coś w rodzaju {% extends "../base.html" %}
, co oznacza, że rozszerzyłoby podstawowy plik poziomu. Jednak w dokumentacji nie znalazłem niczego, co sugerowałoby, że jest to możliwe, i nie mogłem przekonać Django do rozróżnienia między "../base.html"
i "base.html"
. ({% extends "../base.html" %}
Zgłasza błąd.) Przypuszczam, że jednym z rozwiązań byłoby zmiana nazwy wszystkich plików bazowych base_SECTIONNAME.html
i aktualizacja wszystkich plików, które dziedziczą po nich, ale obawiam się, że może to być trudne do utrzymania, ponieważ moja strona staje się większa i nazwy zmian sekcji itp. Wolałbym rozwiązanie, które korzysta z naturalnej hierarchii określonej przez katalogi i podkatalogi.
Wszelkie pomysły?
Prawe ... ścieżki względne nie będą działać z przedłużeniami. –
Nie mogą, ponieważ możesz mieć szablony w różnych miejscach. –
Warto wspomnieć, że wszystkie foldery (/ root,/root/section1,/root/section2, ...) muszą być ustawione jako django TEMPLATE_DIRS w przeciwnym razie nie będzie działać. –