Создание формы
Часть раздела Формы путешествия по Django на Coddy. Урок 6 из 20.
На странице /events/new/ каждая подпись и каждое поле ввода прописаны вручную, а EventForm снова перечисляет те же поля. Форма может отобразить себя сама: передай её в шаблон и напиши {{ form }} внутри тега <form>. Страница контактов:
<form method="post">
{% csrf_token %}
{{ form }}
<button type="submit">Send</button>
</form>{{ form }} выводит подпись и поле ввода для каждого поля в том порядке, в котором они объявлены в классе. Каждое поле ввода получает атрибут name и id вроде id_email, поэтому подпись ссылается на него. Тег формы, токен и кнопку ты добавляешь сам.
Форма, в которую пока ничего не введено, — это класс, вызванный без данных: ContactForm(). Django также добавляет к обязательным полям ввода атрибут required, поэтому браузер не позволяет отправить пустое поле.
Задание
Легко- В
new_eventпередайте в шаблон пустуюEventFormпод именемform. - В
new_event.htmlзамените метки и поля ввода на автоматическую отрисовку формы. Оставьте тег формы, токен, кнопку и сообщение об ошибке.
Нажмите Run и откройте /events/new/: Django отрисует поля.
Попробуйте сами
{% extends "events/base.html" %}
{% block title %}Add an event{% endblock %}
{% block content %}
<h1>Add an event</h1>
{% if error %}
<p class="error">{{ error }}</p>
{% endif %}
<form method="post">
{% csrf_token %}
<label for="title">Title</label>
<input id="title" name="title">
<label for="date">Date</label>
<input id="date" name="date" type="date">
<label for="place">Place</label>
<input id="place" name="place">
<button type="submit">Add event</button>
</form>
{% endblock %}
Все уроки раздела Формы
Потренируйтесь самостоятельно: Песочница Django