Menu
CoddyTech

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

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

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

  • forms.IntegerField(min_value=1, max_value=5): целое число в заданных пределах.
  • forms.EmailField(): не принимает текст, который не является адресом электронной почты.
  • required=False для любого поля: его можно оставить пустым.

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

class ReviewForm(forms.Form):
    stars = forms.IntegerField(min_value=1, max_value=5)
    comment = forms.CharField(widget=forms.Textarea, max_length=500)
    nickname = forms.CharField(required=False)

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

challenge icon

Задание

Легко

Добавьте два поля в EventForm:

  • description: текст в большом поле, которое можно оставить пустым.
  • capacity: целое число не меньше 1.

В new_event сохраните оба значения в событии. Нажмите «Run» и откройте /events/new/.

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

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