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