{% include%} против {% extends%} в шаблонах django - PullRequest
29 голосов
/ 19 мая 2010

Когда особенно расширить шаблон и когда использовать включить? Включает ли какое-либо использование контент, такой как раздел профиля пользователя (например, обо мне в углу нашего сайта)?

Ответы [ 2 ]

49 голосов
/ 19 мая 2010

Расширение позволяет заменять блоки (например, «содержимое») из родительского шаблона вместо включения частей для построения страницы (например, «верхний и нижний колонтитулы»). Это позволяет вам иметь один шаблон, содержащий ваш полный макет, и вы только «вставляете» содержимое другого шаблона, заменяя блок.

Если профиль пользователя используется на всех страницах, вы, вероятно, захотите поместить его в свой базовый шаблон, который будет расширен другими, или включить его в базовый шаблон. Если вы хотите, чтобы профиль был только на нескольких страницах, вы также можете включить его в эти шаблоны. Если профиль пользователя такой же, за исключением нескольких страниц, поместите его в базовый шаблон внутри блока, который затем можно будет заменить в тех шаблонах, которым требуется другой профиль.

3 голосов
/ 19 мая 2010

См. О django шаблон наследования .

Расширяет вид «включает» родительский шаблон и затем может перезаписывать его части для различной функциональности.

Включить включает простое рендеринг шаблона в текущем контексте.

...