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. Zwei davon kennst du bereits: Jedes Feld ist erforderlich, und max_length=100 weist einen längeren Titel zurück.
forms.IntegerField(min_value=1, max_value=5): eine ganze Zahl innerhalb der Grenzen.forms.EmailField(): weist Text zurück, der keine E-Mail-Adresse ist.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 Formular für eine Produktbewertung:
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)Ein leeres optionales Textfeld ergibt "" in cleaned_data; eine leere optionale Zahl ergibt None. Die Schleife in deiner Vorlage stellt neue Felder ohne Änderungen dar.
Aufgabe
EinfachFüge EventForm zwei Felder hinzu:
description: Text in einem großen Feld, das leer gelassen werden kann.capacity: eine ganze Zahl von mindestens 1.
Speichere in new_event beide im Event. Klicke auf „Run“ und öffne /events/new/.
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