Hi,

To me it looks like you're doing wrong solution for your problem.

Serializer is mainly meant to convert data from complex format to python primitives and vice versa.

Validation is to make sure that converted (deserialized) object matches the definition of the serializer.

Now, to me it looks like you want to check is something authenticated. That's not exactly job for serializer, but job of your view code (one that calls deserialization) after object has been successfully deserialized and validated.


On 12.06.2017 13:30, Sinan Ülker wrote:
Is there any example of custom handling in serializer. I couldn't figure out how to do that.

On Jun 12, 2017 09:19, "Jani Tiainen" <[email protected] <mailto:[email protected]>> wrote:

    Hi,

    You need to raise validation error (or subclass of it).

    Another option is to move authentication check outside serializer
    (which might be right thing to do)
    and catch that error properly there (or do custom handling).


    On 12.06.2017 04:57, Sinan Ülker wrote:
    Hello,

    Since serializer.is_valid()  does not catch the Exceptions other
    than the validationError, how can i raise custom exceptions in
    validate method and then catch get them with serializer.errors

    for example:

    class  Foo(serializers.Serializer):
         def  validate(self,data):
             raise  exceptions.AuthenticationFailed("message")
    #### then I want to test it like this but serializer.is_valid()
    line always return error.
    serializer = Foo(some.data)
    is_valid = serializer.is_valid()
    expected_error = {['message.']}
    self.assertFalse(is_valid)
    self.assertEqual(serializer.errors, expected_error)

    I also could not figure out how to handle it with custom
    exception handler can you help me about this. I also appreciate
    if you supply some examples

    -- You received this message because you are subscribed to the
    Google Groups "Django REST framework" group. To unsubscribe from
    this group and stop receiving emails from it, send an email to
    [email protected]
    <mailto:[email protected]>. For
    more options, visit https://groups.google.com/d/optout
<https://groups.google.com/d/optout>.

-- Jani Tiainen

    -- You received this message because you are subscribed to a topic
    in the Google Groups "Django REST framework" group. To unsubscribe
    from this topic, visit
    
https://groups.google.com/d/topic/django-rest-framework/8Ai8Vrss0Gg/unsubscribe
    
<https://groups.google.com/d/topic/django-rest-framework/8Ai8Vrss0Gg/unsubscribe>.
    To unsubscribe from this group and all its topics, send an email
    to [email protected]
    <mailto:[email protected]>. For
    more options, visit https://groups.google.com/d/optout
<https://groups.google.com/d/optout>. -- You received this message because you are subscribed to the Google Groups "Django REST framework" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected] <mailto:[email protected]>. For more options, visit https://groups.google.com/d/optout.
--
Jani Tiainen

--
You received this message because you are subscribed to the Google Groups "Django 
REST framework" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to