Validación integrada
Parte de la sección Formularios del Journey de Django de Coddy. Lección 9 de 20.
Un evento necesita una descripción y un número de plazas. Cada campo del formulario comprueba su propio tipo de valor, y sus argumentos añaden reglas. Ya has visto dos: todos los campos son obligatorios y max_length=100 rechaza un título más largo.
forms.IntegerField(min_value=1, max_value=5): un número entero entre los límites.forms.EmailField(): rechaza el texto que no sea una dirección de correo electrónico.required=Falseen cualquier campo: se puede dejar vacío.
Un widget decide cómo se muestra un campo: widget=forms.Textarea crea un cuadro de texto grande. Un formulario de reseña de producto:
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)Un campo de texto opcional vacío proporciona "" en cleaned_data; un campo numérico opcional vacío proporciona None. El bucle de tu plantilla muestra los campos nuevos sin cambios.
Desafío
FácilAgrega dos campos a EventForm:
description: texto en un cuadro grande, que puede dejarse vacío.capacity: un número entero de al menos 1.
En new_event, guarda ambos en el evento. Presiona Run y abre /events/new/.
Pruébalo tú mismo
from django import forms
class EventForm(forms.Form):
title = forms.CharField(max_length=100)
date = forms.DateField()
place = forms.CharField(max_length=100)
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Formularios
2Formularios de Django
Un formulario de DjangoDibujar un formulario5Proyecto: Lista de invitados
Una confirmación de asistencia por correo electrónicoUna página para invitadosPractica por tu cuenta: Playground de Django