#14. Наследование шаблонов (extends). Тег include | Уроки по Django 4

preview_player
Показать описание

Что такое расширение (наследование) шаблонов и зачем это нужно. Теги extends и block. Включение одного шаблона в другой с помощью тега include.

Рекомендации по теме
Комментарии
Автор

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

itdkumf
Автор

самые понятные знания которые только встречал по Django

bagkons
Автор

Реализация принципа DRY. Спасибо за урок!

ityosni
Автор

На гитхабе нету же Html код где можно посмотреть?

gqmsuyv
Автор

Приветствую Сергей! Скажите пожалуйста, у вас есть видео на канале или в вашем платном курсе о массовой загрузке фото. У меня сайт по продажам товаров и для товара нужно более чем одно фото. Этот момент мне нужно реализовать. спасибо

NikolayPuh
Автор

то есть шаблон base.html - является родителем и от него наследуются все остальные шаблоны, которые являются дочерними?

astoriy
Автор

вдруг кому-то поможет глубже понять материал, в чем разница между include и extends:

чтобы отработал html-файл, которым вы расширяете базовый шаблон, у вас должна быть функция-представление (view), которая будет вызывать этот html-файл.

если вы просто ради фрагментации (для удобства разработки) собираетесь побить базовый шаблон на блоки и прописать в отдельных html-файлах (к примеру, прописали вывод категорий в базовом файле и потом решили вынести их в отдельный файл) и при этом у вас отсутствует представление, которое вызывало бы этот шаблон (категории), такое расширение не сработает. а вот include сработает.

но тогда вопрос к Сергею: я прописал в базовом файле вывод категорий, решил (для удобства) вынести в отдельный файл, долго думал почему же он не экстендится (судя по написанному выше - додумался), пришел к выводу, что надо его инклюдить - заинклюдил в базовый файл. в тестовом сервере поймал ошибку (внимание) превышения глубины рекурсии. убираю строку с инклюдом - исчезает ошибка. возвращаю инклюд - ошибка. при том отладка показывает что ошибка возникает в шаблоне формирования меню (формирование меню прописано в базовом файле), но все действия с инклюдом не задевали этот кусок кода. а проблема решилась только когда заинклюдил категории в index.html, который наследуется от базового файла. в базовый файл нельзя инклюдить?

wasd
Автор

Создавая base.html в главном приложении, мы лишается автономности приложения women

mrduckvc
Автор

Добрый день! Еще раз спасибо за ваши видео. Подскажите, ваш сайт сейчас нормально работает? Почему-то сегодня на него никак зайти не могу(

fyowlso
Автор

Пересматриваю занятия, получается мы вынесли базовый шаблон в sitewomen что бы если мы создадим новое приложение внутри проекта, форум например, , мы могли наследовать HTML шаблоны нового приложения forum и что бы страницы форума всегда имели пункты меню?
Или для чего выносить по нестандартному пути базовый шаблон, а не сделать егго прямо в папке шаблонов приложения women?
Спасибо

ityosni
Автор

Спасибо за урок! Только один вопрос, а можно как то, что бы разрешение видоса было доступно в 1080p? А то в 720p не очень удобно.

catsaur
Автор

Может я что-то где-то упустил, но каким образом я должен понимать когда путь нужно прописывать в settings, а когда нет?
А так спасибо за уроки все очень доходчиво и понятно, лайк!

jacklandau
Автор

Сергей, сделайте, пожалуйста, урок по unittest в django

kqmtcow
Автор

А что за странный синтаксис используется в "DIRS" со слешем после переменной BASE_DIR?

northern_man_
Автор

Сергей, а каким образом base.html получает доступ к списку menu? Список этот ни одно представление не передает в base.html.

conradgrays
Автор

Добрый день, спасибо за уроки, но у меня ошибка после использования include. Второй день ломаю голову, нашел ваш код, но то же.
Django Version: 5.0
Exception Type: TemplateSyntaxError
Exception Value:
Invalid block tag on line 6: 'include', expected 'endblock'. Did you forget to register or load this tag?
В документацию ходил, написано, как вы говорили.
Вы не в курсе, что могло случиться?

xrwkrgj
Автор

У меня щас мозг взорвётся, я ничего не понимаю

Antinormanisto
Автор

Здравствуйте. Крутые уроки, хорошо и постепенное погружение в django. Правда, я выполнил все так же, но почему то у меня extends block не получается, не знаю с чем связано, выполнил все так же как на видео. Если кто то связывался с данной проблемой, помогите.

RockChronicles
Автор

Я не совсем понял разницы между include и extends. Почему мы не можем реализовать меню через include, а не extends?

pankkpan
Автор

идеология Django гласит, что приложение должно быть модульным и легко импортируемым в другие проекты

при переносе приложения women в другой проект, мы получим ошибку, тк шаблон base.html не будет найдет, тк он находится в главном приложении сайта - sitemone

Почему он разместил base.html именно в sitewomen а не в women ?

ell