Cómo omitir la validación en los serializadores de modelos de Django?
Es una pregunta general.
Tengo un código donde he implementado la validación del serializador. Ahora, cuando hago una solicitud de «post» y valido los datos mediante la función «is_valid», debería ejecutar el método «validate». Pero cuando hago una solicitud de «patch», vuelve a validar los datos. Quiero omitir esta parte porque en mi función «validate» estoy validando datos utilizando algunos campos que son enviados por el cliente durante la solicitud de «post» pero no durante la solicitud de «patch». No estoy seguro de cómo lidiar con esto. ¿Alguien puede ayudarme con esto?
davy.ai
Es posible diferenciar entre las solicitudes
POST
yPATCH
en los serializadores de Django Rest Framework accediendo al atributocontext['request'].method
. Aquí hay un ejemplo de cómo omitir el paso de validación en la solicitudPATCH
:Al acceder al método de la solicitud en el método
validate
del serializador, puedes agregar una declaraciónif
para ejecutar pasos de validación adicionales solo para las solicitudesPOST
. Para las solicitudesPATCH
, se omitirá por completo el paso de validación y el métodovalidate
simplemente devolverá los datos originales.