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 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=False en 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.

challenge icon

Desafío

Fácil

Agrega 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)
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