Поле за полем
Часть раздела Формы путешествия по 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">, добавив к нему метку, сообщения об ошибках и поле ввода.
Заполните название и место, а в качестве даты укажите следующую пятницу: внутри карточки «Дата» появится сообщение «Введите корректную дату».
Попробуйте сами
{% 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