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 conoces dos: todos los campos son obligatorios, y max_length=100 rechaza un título más largo.
min_valueen unIntegerField: rechaza un número menor.required=Falseen cualquier campo: se puede dejar vacío.
Un widget determina cómo se muestra un campo: widget=forms.Textarea crea un cuadro de texto grande. Un formulario de reserva para un juego de mesa:
class TableForm(forms.Form):
players = forms.IntegerField(min_value=2)
wishes = forms.CharField(widget=forms.Textarea, max_length=500)
phone = forms.CharField(required=False)Un campo de texto opcional vacío da "" en cleaned_data; un campo numérico opcional vacío da None. El bucle de tu plantilla muestra los campos nuevos sin ningún cambio.
Desafío
FácilLos eventos incluyen una descripción y un número de plazas.
- En
events/forms.py, añadedescriptionaEventForm: texto en un cuadro grande, que puede dejarse vacío. Añadecapacity: un número entero de al menos 1. - En
new_event, guarda ambos datos en el evento.
Añade un evento con capacidad para 25 personas y sin descripción: su página muestra 25 plazas.
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