444 Глава 20 •
Оформление и развертывание приложения{% endblock header %}
{% block content %}
{% endblock content %}
В точке в шаблон загружаются шаблонные теги bootstrap3
. В точке опреде- ляется блок header
, который описывает, для чего нужна страница. Обратите вни- мание: блок
{%
if form.errors
%}
удален из шаблона; django-bootstrap3
управляет ошибками формы автоматически.
В точке добавляется атрибут
, после чего при отображении формы используется шаблонный тег
{%
bootstrap_form
%}
; он заменяет тег
{{
form.as_p
}}
, используемый в главе 19. Шаблонный тег
{%
booststrap_form
%}
вставляет правила в стиле Bootstrap в отдельные элементы формы при ее построении. В точке от- крывается шаблонный тег bootstrap3
{%
buttons
%}
, который добавляет стилевое оформление Bootstrap к кнопкам.
На рис. 20.2 показана форма входа так, как она выглядит сейчас. Страница стала на- много чище, ее оформление — последовательно, а предназначение — предельно ясно.
Рис. 20.2. Страница входа, оформленная с использованием Bootstrap
Оформление приложения Learning Log
445Попробуйте выполнить вход с неверным именем пользователя или паролем; вы увидите, что даже сообщения об ошибках следуют тому же стилю оформления и хорошо интегрируются с сайтом в целом.
Оформление страницы new_topic
Приведем остальные страницы к тому же стилю оформления. Следующей будет преобразована страница new_topic
:
new_topic.html{% extends "learning_logs/base.html" %}
{% load bootstrap3 %}
{% block header %}
Add a new topic:
{% endblock header %}
{% block content %}
{% endblock content %}
В
основном эти изменения аналогичны тем, которые были применены в login .html
: мы загружаем bootstrap3
и добавляем блок header с соответствующим сообщени- ем . Затем в тег
446 Глава 20 • Оформление и развертывание приложения
{% block content %}
{% for topic in topics %}
{{ topic }}
{% empty %}
- No topics have been added yet.
{% endfor %}
Add new topic
{% endblock content %}
Тег
{%
load bootstrap3
%}
не нужен, потому что в этом файле не используются ни- какие шаблонные теги bootstrap3
. Заголовок
Topics добавляется в блок header
.
Каждая тема оформляется как элемент
, чтобы она выводилась чуть более крупным шрифтом на странице ; то же самое делается со ссылкой добавления новой темы .
Оформление записей на странице темы
Страница темы содержит больше контента, чем большинство страниц, поэтому над ней придется потрудиться. Чтобы записи визуально выделялись, мы вос- пользуемся панелями Bootstrap. Панель представляет собой элемент div с заранее определенным стилем и идеально подходит для отображения записей темы:
topic.html
{% extends 'learning_logs/base.html' %}
{% block header %}