Menu
CoddyTech

Встроенная проверка данных

Часть раздела Формы путешествия по Django на Coddy. Урок 9 из 20.

Для мероприятия нужны описание и количество мест. Каждое поле формы проверяет свой тип значения, а его аргументы добавляют правила. Ты уже познакомился с двумя: каждое поле обязательно для заполнения, а max_length=100 не допускает заголовок длиннее 100 символов.

  • min_value у IntegerField: не допускает число меньше указанного.
  • required=False у любого поля: его можно оставить пустым.

Виджет определяет, как отображается поле: widget=forms.Textarea создаёт большое текстовое поле. Форма бронирования для настольной игры:

class TableForm(forms.Form):
    players = forms.IntegerField(min_value=2)
    wishes = forms.CharField(widget=forms.Textarea, max_length=500)
    phone = forms.CharField(required=False)

Пустое необязательное текстовое поле даёт "" в cleaned_data; пустое необязательное числовое поле даёт None. Цикл в шаблоне отображает новые поля без изменений.

challenge icon

Задание

Легко

Добавьте событиям описание и количество мест.

  1. В events/forms.py добавьте description в EventForm: текст в большом поле, которое можно оставить пустым. Добавьте capacity: целое число не меньше 1.
  2. В new_event сохраните оба значения в событии.

Добавьте событие с количеством мест 25 и без описания: на его странице отображается 25 мест.

Попробуйте сами

from django import forms


class EventForm(forms.Form):
    title = forms.CharField(max_length=100)
    date = forms.DateField()
    place = forms.CharField(max_length=100)
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Формы

Потренируйтесь самостоятельно: Песочница Django