Menu
CoddyTech

Поле за полем

Часть раздела Формы путешествия по 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, которое превращает каждый блок в карточку.

challenge icon

Задание

Легко

В 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