2010-12-07 2 views
2

Учитывая следующий каталог:Django шаблон включает/продлить с подкаталогами

|- basic.html 
|- nav.html 
|- folder1/ 
|- |- page.html 
\- \- nav.html 

page.html расширяет ../basic.html, который включает в себя nav.html

В этом случае, сво folder1/nav.html который получает включен. Если я удалю folder1/nav.html, ничего не входит. Как это исправить? Я мог бы включить nav.html в basic.html, но могут быть ситуации по дороге, где я хочу иметь basic.html некоторые из них.

Редакция: Идея состоит в том, что все, что унаследовало basic.html, получит шаблон toplevel nav.html, но это, похоже, не так, потому что директива include nav.html оценивается в текущем каталоге любого шаблона.

+0

может вы комментировать, почему вы хотите удалить папку1/nav.html? похоже, вы просто исправите basic.html, если бы вы удалили файл, который он включает. конечно, я понимаю, что у вас есть свои собственные обстоятельства, но я собираюсь быть тем парнем, который говорит, что может быть другой способ приблизиться к нему. – munchybunch 2011-01-11 08:22:00

+0

Похоже, что единственный способ заключается в прямом включении содержимого nav.html в basic.html, который работает, но я бы предпочел сохранить его отдельно - чисто эстетические причины, конечно. – decitrig 2011-01-12 18:34:01

ответ

0

Я не знаю, правильно ли я все правильно, но я думаю, вы должны приложить includeblock?

Basic.html:

... 
{% block navigation %} 
{% include "nav.html" %} 
{% endblock %} 

page.html:

{% extends "../basic.html" %} 
{% block navigation %} 
{% include "folder1/nav.html" %} 
{% endblock %} 

Если вы не перезаписывать навигационный блок в page.html оригинал включают следует использовать ...

Смежные вопросы