Редактирование данных
427
Add a new topic:
❶
{% endblock content %}
Этот шаблон расширяет
base .html
, поэтому он имеет такую же базовую структуру,
как и остальные страницы Learning Log. В точке
определяется форма HTML.
Аргумент
action
сообщает серверу, куда передавать данные, отправленные фор-
мой; в данном случае данные возвращаются функции представления
new_topic()
.
Аргумент
method
приказывает браузеру отправить данные в запросе типа POST.
Django использует шаблонный тег
{%
csrf_token
%}
для предотвращения по-
пыток получения несанкционированного доступа к серверу (атаки такого рода
называются
межсайтовой подделкой запросов
). В точке
отображается форма;
это наглядный пример того, как легко в Django выполняются такие стандартные
операции, как отображение формы. Чтобы автоматически создать все поля, необ-
ходимые для отображения формы, достаточно включить шаблонную переменную
{{
form.as_p
}}
. Модификатор
as_p
приказывает Django отобразить все элементы
формы в формате абзацев — это простой способ аккуратного отображения формы.
Django не создает кнопку отправки данных для форм, поэтому мы определяем ее
в точке
.
Создание ссылки на страницу new_topic
Далее ссылка на страницу
new_topic
создается на странице
topics
:
topics.html
{% extends "learning_logs/base.html" %}
{% block content %}
Topics
Add a new topic:
{% endblock content %}
Разместите ссылку после списка существующих тем. Полученная форма изобра-
жена на рис. 19.1. Воспользуйтесь ею и добавьте несколько своих тем.