Расширение шаблона
Ещё одной удобной вещью в Django является расширение шаблонов. Что это значит? Ты можешь использовать одни и те же блоки HTML-кода для разных частей своего веб-сайта.
Так тебе не придётся повторяться каждый раз, когда потребуется использовать ту же информацию/структуру. И если появится необходимость что-то изменить, не придётся вносить правки в каждую страницу: достаточно скорректировать шаблон!
Создаём базовый шаблон
Базовый шаблон — это наиболее общая типовая форма страницы, которую ты расширяешь для отдельных случев.
Давай создадим файл base.html
в директории blog/templates/blog/
:
Теперь открой его и скопируй всё из post_list.html
в base.html
:
Затем в файле base.html
замени всё между тегами <body>
и </body>
следующим кодом:
Мы просто заменили всё между `
` следующим:
Что это означает? Ты только что создала block
— тег шаблона, позволяющий вставлять HTML-код этого блока в другие шаблоны, расширяющие base.html
. Мы покажем, как это сделать, через секунду.
Теперь сохрани всё и открой blog/templates/blog/post_list.html
снова. Тебе нужно удалить всё до {% for post in posts %}
и после {% endfor %}
. В итоге файл будет выглядеть следующим образом:
Мы хотим использовать это фрагмент в твоём шаблоне для отображения содержимого. Пора добавить теги блоков в этот файл!
Нам нужно, чтобы новый тег блока соответствовал тегу в файле base.html
. Также нам необходимо включить весь код, который соответствует твоему блоку с содержимым. Для этого расположи всё между {% block content %}
и {% endblock %}
. Вот так:
Осталось последнее: нам нужно связать эти два шаблона друг с другом. Ведь именно для этого и нужно расширение шаблонов! Мы сделаем это, добавив тег extends
в начало файла. Вот так:
Готово! Проверь, что твой веб-сайт работает нормально :)
Если появилась ошибка
TemplateDoesNotExists
, это значит, что нет файлаblog/base.html
иrunserver
запущен в командной строке. Попробуй остановить его (одновременно нажми Ctrl + C) и перезапусти веб-сервер командойpython manage.py runserver
.
Last updated