[pyar] [django] Rest framework

Diego Fejgelis diegofej en gmail.com
Jue Mayo 14 18:55:41 ART 2015


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
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20150514/26c9b718/attachment.html>


More information about the pyar mailing list