Menu
CoddyTech

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_value en un IntegerField: rechaza un número menor.
  • required=False en 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.

challenge icon

Desafío

Fácil

Los eventos incluyen una descripción y un número de plazas.

  1. En events/forms.py, añade description a EventForm: texto en un cuadro grande, que puede dejarse vacío. Añade capacity: un número entero de al menos 1.
  2. 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)
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Formularios

Practica por tu cuenta: Playground de Django