Validaciones de campos personalizados en formularios Django

Este artículo gira en torno a cómo agregar una validación personalizada a un campo en particular. Por ejemplo, para agregar la validación de un correo electrónico a un CharField especificando un formato particular. Puede haber varias formas de lograr una validación personalizada. En este artículo, lo mostraremos desde el propio formulario para que no necesite manipularlo en ningún otro lugar.

¿Qué es Validadores?

Un validador es un invocable que toma un valor y genera un ValidationError si no cumple con los criterios. Los validadores pueden ser útiles para reutilizar la lógica de validación entre diferentes tipos de campos.

Explicación de validación de campos personalizados de Django para formularios de Django

Ilustración de validadores utilizando un ejemplo. Considere un proyecto llamado geeksforgeeks que tenga una aplicación llamada geeks.

Consulte los siguientes artículos para comprobar cómo crear un proyecto y una aplicación en Django.

Para usar validadores incorporados en el campo de su formulario, importe validadores en formularios.py de esta manera.

Python3

from django import forms
from django.core import validators
  
class StuForm(forms.Form):
  name = forms.CharField(
    validators =[validators.MaxLengthValidator(10)])

llame a MaxLengthValidators incorporados desde los validadores, genera un error de validación si la longitud del valor es mayor que limit_value.

¿Cómo crear nuestros validadores personalizados en django?

Así que vamos a crear nuestros propios validadores personalizados.

Ejemplo 1 :-

Crearemos un validador, si el nombre no comienza con s, generará un error.

formularios.py

Python3

from django import forms
  
def start_with_s(value):
  if value[0]!='s':
    raise forms.ValidationError("Name should start with s")
  
  
class StuForm(forms.Form):
  name = forms.CharField(
    validators =[start_with_s])

Pase la función en validadores.

Escribimos una lógica si un nombre no comienza con ‘s’, genera un error y se ajusta a la función.

Ejemplo 2 :-

Crearemos un validador para un campo de número de móvil

Python3

from django import forms
  
def mobile_no(value):
  mobile = str(value)
  if len(mobile) != 10:
    raise forms.ValidationError("Mobile Number Should 10 digit")
  
  
class StuForm(forms.Form):
  mob = forms.IntegerField(
    validators =[mobile_no])

Escribimos una lógica de validador de números móviles, genera un error y se ajusta a la función

Publicación traducida automáticamente

Artículo escrito por vivekpisal12345 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *