- 1

Creación de APIs con Django REST Framework
01:38 - 2

APIs y JSON: Comunicación entre Servidores y Aplicaciones Web
09:42 - 3

Creación de APIs con Django REST Framework
09:48 - 4

Django REST: Funcionalidades y Ventajas al Crear APIs
02:54 - 5

Modelos y Serializadores en Django para DoctorApp
14:13 - 6

Uso de Serializadores en Vistas con Django REST Framework
05:50 - 7

Creación y modificación de pacientes en API REST con Django
19:08 - 8

CRUD de Recursos con Django REST Framework
06:06 - 9

Pruebas de APIs con Postman y Curl
05:48 - 10

Refactorización de Vistas: De Funciones a Clases en Django REST
17:01 - 11

Vistas Genéricas en Django: Detalle, Actualización y Eliminación
04:19 - 12

Documentación de APIs con DRF Spectacular y Swagger en Django
10:38
Validaciones Personalizadas en Serializadores de Django REST Framework
Clase 16 de 21 • Curso de Django Rest Framework
Contenido del curso
Validar datos correctamente es clave para asegurar que una aplicación funcione de manera segura y confiable. En este caso, exploramos cómo implementar validaciones personalizadas en serializadores de Django REST Framework para garantizar que los datos cumplan con los requisitos específicos del negocio.
¿Cómo implementamos una validación personalizada en Django REST Framework?
Django ya ofrece validaciones básicas, como verificar que un campo sea un email. Sin embargo, para casos específicos, como asegurarse de que un correo pertenezca a un dominio corporativo, necesitamos crear validaciones personalizadas en el serializador. Esto lo logramos usando el método validate_<nombre_del_campo>. Por ejemplo, para validar que un correo termine en @example.com, implementamos lo siguiente:
- Definimos el método
validate_emaildentro del serializador. - Verificamos si el valor del campo contiene el dominio correcto.
- Si es válido, retornamos el valor; si no, levantamos una excepción con un mensaje de error.
¿Cómo manejar errores de validación en casos más complejos?
Para validaciones que dependen de múltiples campos, como validar el número de contacto y el estado de vacaciones de un doctor, usamos el método general validate. Este método permite acceder a todos los campos del serializador en forma de diccionario y aplicar lógica personalizada.
Por ejemplo:
- Validamos que el número de contacto tenga al menos 10 caracteres.
- Si el doctor está de vacaciones (
is_on_vacationesTrue) y el número no es válido, lanzamos una excepción que indica que debe corregirse el número antes de continuar.
¿Qué debemos hacer si hay múltiples validaciones?
En casos donde existen múltiples validaciones, podemos usar un diccionario que devuelva los valores de todos los campos y agregar la lógica en consecuencia. Esto es útil cuando debemos validar múltiples condiciones que se interrelacionan.
¿Cómo lanzamos errores personalizados en serializadores?
Django REST Framework nos permite lanzar excepciones personalizadas que se retornan como un error en formato JSON. Usamos raise serializers.ValidationError para generar estos errores con mensajes específicos, ayudando a los usuarios a corregir los datos enviados antes de que se procesen.