Встроенная проверка данных
Часть раздела Формы путешествия по 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. Цикл в вашем шаблоне отображает новые поля без изменений.
Задание
ЛегкоДобавьте два поля в 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)
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Формы
2Формы Django
Форма DjangoСоздание формыПотренируйтесь самостоятельно: Песочница Django