Wbudowana walidacja
Część sekcji Formularze ścieżki Django w Coddy. Lekcja 9 z 20.
Wydarzenie wymaga opisu i określonej liczby miejsc. Każde pole formularza sprawdza własny rodzaj wartości, a jego argumenty dodają reguły. Poznałeś już dwie: każde pole jest wymagane, a max_length=100 odrzuca dłuższy tytuł.
forms.IntegerField(min_value=1, max_value=5): liczba całkowita z podanego zakresu.forms.EmailField(): odrzuca tekst, który nie jest adresem e-mail.required=Falseprzy dowolnym polu: można je pozostawić puste.
Widżet określa sposób wyświetlania pola: widget=forms.Textarea tworzy duże pole tekstowe. Formularz recenzji produktu:
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)Puste, opcjonalne pole tekstowe daje "" w cleaned_data; puste, opcjonalne pole liczbowe daje None. Pętla w szablonie wyświetla nowe pola bez żadnych zmian.
Wyzwanie
ŁatwyDodaj dwa pola do EventForm:
description: tekst w dużym polu, które może pozostać puste.capacity: liczba całkowita wynosząca co najmniej 1.
W new_event zapisz oba pola w wydarzeniu. Naciśnij Run i otwórz /events/new/.
Spróbuj swoich sił
from django import forms
class EventForm(forms.Form):
title = forms.CharField(max_length=100)
date = forms.DateField()
place = forms.CharField(max_length=100)
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Formularze
Poćwicz samodzielnie: Edytor online Django