[pyar] [django] Rest framework

Daniel dmlistapython en gmail.com
Jue Mayo 14 19:08:42 ART 2015


ok, era mas por un DRY que por convencimiento, pero repetiré la validacion

El 14 de mayo de 2015, 18:55, Diego Fejgelis <diegofej en gmail.com> escribió:

> El que te tira 500 es la view. Si queres mantener la validación *solo* en
> el modelo, tenes que sobreescribir metodos de la view, no del serializador.
> (posiblemente post() o mejor en el create()/update())
>
> Yo igualmente pondría un validate_cuit en el Serializer. El error creo que
> debería ser antes de tratar de hacer el save.
>
>
>
> 2015-05-14 18:34 GMT-03:00 Daniel <dmlistapython en gmail.com>:
>
> claro, pero necesito repetir la validación en el serializador ¿no?
>> lo que quería es capturar el error de validación del modelo.
>>
>> El 14 de mayo de 2015, 18:32, Diego Fejgelis <diegofej en gmail.com>
>> escribió:
>>
>>> Podes hacer un validate_cuit(), de una manera muy parecida a "clean_" en
>>> un form. [1]
>>>
>>> class ClienteSerializer(serializers.ModelSerializer):
>>>     class Meta:
>>>         model = Cliente
>>>         fields = ('id', 'razon_social', 'cond_iva', 'direccion',
>>> 'ciudad', 'cuit')
>>>
>>>     def validate_cuit(self, value):
>>>         """
>>>         Check valid CUIT
>>>         """
>>>         if cuit_valid(value):
>>>             raise serializers.ValidationError("Invalid CUIT")
>>>         return value
>>>
>>> ** Código sin probar
>>>
>>> [1]
>>> http://www.django-rest-framework.org/api-guide/serializers/#validation
>>>
>>> 2015-05-14 18:28 GMT-03:00 Daniel <dmlistapython en gmail.com>:
>>>
>>>> Hola Gente,
>>>>
>>>> tengo este serializador:
>>>>
>>>> class ClienteSerializer(serializers.ModelSerializer):
>>>>     class Meta:
>>>>         model = Cliente
>>>>         fields = ('id', 'razon_social', 'cond_iva', 'direccion',
>>>> 'ciudad', 'cuit')
>>>>
>>>>
>>>> resulta que el cuit (que sea válido) lo evalúo a nivel modelo, si envio
>>>> un cuit invalido me genera una excepción.
>>>>
>>>> El problema es que la API me devuelve un error 500 con el error,
>>>> ¿como capturo ese error desde el serializador y lo devuelvo como un 400
>>>> con un mensaje elegante?
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> pyar mailing list pyar en python.org.ar
>>>> http://listas.python.org.ar/listinfo/pyar
>>>>
>>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>>
>>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>>> Argentina - http://www.usla.org.ar
>>>>
>>>
>>>
>>> _______________________________________________
>>> pyar mailing list pyar en python.org.ar
>>> http://listas.python.org.ar/listinfo/pyar
>>>
>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>
>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>> Argentina - http://www.usla.org.ar
>>>
>>
>>
>>
>> --
>> Daniel Malisani
>>
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>



-- 
Daniel Malisani
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20150514/53a3b1ae/attachment-0001.html>


More information about the pyar mailing list