Integrierte Validierung
Teil des Abschnitts Formulare der Django-Journey von Coddy. Lektion 9 von 20.
Eine Veranstaltung benötigt eine Beschreibung und eine Anzahl von Plätzen. Jedes Formularfeld prüft eine bestimmte Art von Wert, und seine Argumente fügen Regeln hinzu. Du kennst bereits zwei: Jedes Feld ist erforderlich, und max_length=100 weist einen längeren Titel zurück.
min_valuebei einemIntegerField: weist eine kleinere Zahl zurück.required=Falsebei einem beliebigen Feld: Es darf leer gelassen werden.
Ein Widget bestimmt, wie ein Feld dargestellt wird: widget=forms.Textarea erzeugt ein großes Textfeld. Ein Buchungsformular für ein Brettspiel:
class TableForm(forms.Form):
players = forms.IntegerField(min_value=2)
wishes = forms.CharField(widget=forms.Textarea, max_length=500)
phone = forms.CharField(required=False)Ein leeres optionales Textfeld ergibt "" in cleaned_data; eine leere optionale Zahl ergibt None. Die Schleife in deinem Template stellt neue Felder ohne Änderungen dar.
Aufgabe
EinfachVeranstaltungen erhalten eine Beschreibung und eine Anzahl von Plätzen.
- Füge in
events/forms.pydescriptionzuEventFormhinzu: Text in einem großen Feld, das leer bleiben darf. Fügecapacityhinzu: eine ganze Zahl von mindestens 1. - Speichere in
new_eventbeides für die Veranstaltung.
Füge eine Veranstaltung mit einer Kapazität von 25 und ohne Beschreibung hinzu: Auf ihrer Seite werden 25 Plätze angezeigt.
Probier es selbst
from django import forms
class EventForm(forms.Form):
title = forms.CharField(max_length=100)
date = forms.DateField()
place = forms.CharField(max_length=100)
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Formulare
2Django-Formulare
Ein Django-FormularEin Formular erstellenÜbe selbstständig: Django-Playground