Поле за полем
Часть раздела Формы путешествия по Django на Coddy. Урок 8 из 20.
{{ form }} отображает все поля одинаково, одно под другим. Чтобы поместить каждое поле в отдельный блок, отображайте поля по одному.
Форма — это список её полей: {% for field in form %} выдаёт их в том порядке, в котором они объявлены в классе. {{ field.as_field_group }} отображает одно поле вместе с меткой, ошибками и элементом ввода. Страница регистрации с двумя именами рядом друг с другом:
<div class="row">
<div class="half">{{ form.first_name.as_field_group }}</div>
<div class="half">{{ form.last_name.as_field_group }}</div>
</div>Запись {{ form.email }} сама по себе отображает только элемент ввода: без метки и без сообщения об ошибке, которое объясняло бы, что пошло не так.
В таблице стилей уже есть правило .field, которое превращает каждый блок в карточку.
Задание
ЛегкоВ new_event.html замените {{ form }} циклом по полям формы. Поместите каждое поле в отдельный <div class="field"> вместе с его меткой, ошибками и полем ввода.
Нажмите «Запустить», укажите дату next friday и найдите ошибку внутри поля даты.
Попробуйте сами
{% extends "events/base.html" %}
{% block title %}Add an event{% endblock %}
{% block content %}
<h1>Add an event</h1>
<form method="post">
{% csrf_token %}
{{ form }}
<button type="submit">Add event</button>
</form>
{% endblock %}
Все уроки раздела Формы
Потренируйтесь самостоятельно: Песочница Django