Когда особенно расширять шаблон и когда использовать include? Можно ли использовать такой контент, как раздел профиля пользователя (например, обо мне в углу нашего сайта)?
{% include %} против {% extends %} в шаблонах django
Ответы (3)
Расширение позволяет вам заменять блоки (например, «контент») из родительского шаблона вместо того, чтобы включать части для построения страницы (например, «верхний колонтитул» и «нижний колонтитул»). Это позволяет вам иметь один шаблон, содержащий ваш полный макет, и вы только «вставляете» содержимое другого шаблона, заменяя блок.
Если профиль пользователя используется на всех страницах, вы, вероятно, захотите поместить его в свой базовый шаблон, который расширяется другими, или включить его в базовый шаблон. Если вам нужен профиль пользователя только на нескольких страницах, вы также можете включить его в эти шаблоны. Если профиль пользователя тот же, за исключением нескольких страниц, поместите его в свой базовый шаблон внутри блока, который затем можно будет заменить в тех шаблонах, которым нужен другой профиль.
См. о django наследование шаблонов.
Расширяет своего рода «включает» родительский шаблон, а затем может перезаписывать его части для другой функциональности.
Include делает простой рендеринг шаблона в текущем контексте.
extends создает «отношение родитель-потомок». Существует вероятность перезаписи родительской функциональности в случае расширения. В то время как include просто отображает html-ответ.