Menu
CoddyTech

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=False przy 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.

challenge icon

Wyzwanie

Łatwy

Dodaj 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)
quiz iconSprawdź się

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