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 określony typ wartości, a jego argumenty dodają reguły. Poznałeś już dwie: każde pole jest wymagane, a max_length=100 odrzuca tytuł, który jest dłuższy.

  • min_value w polu IntegerField: odrzuca mniejszą liczbę.
  • required=False w dowolnym polu: można je pozostawić puste.

Widżet decyduje o tym, jak wyświetlane jest pole: widget=forms.Textarea tworzy duże pole tekstowe. Formularz rezerwacji do gry planszowej:

class TableForm(forms.Form):
    players = forms.IntegerField(min_value=2)
    wishes = forms.CharField(widget=forms.Textarea, max_length=500)
    phone = 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

Wydarzenia mają opis i określoną liczbę miejsc.

  1. W pliku events/forms.py dodaj description do EventForm: tekst w dużym polu, które można pozostawić puste. Dodaj capacity: liczbę całkowitą co najmniej 1.
  2. W new_event zapisz oba pola w wydarzeniu.

Dodaj wydarzenie z pojemnością 25 i bez opisu: jego strona wyświetla 25 miejsc.

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