validator not working in serializers.ModelSerializer

36 views
Skip to first unread message

Maurya Allimuthu

unread,
Jan 24, 2019, 7:19:25 AM1/24/19
to Django users
Hi All,

I use  serializers.ModelSerializer and viewset DetailViewset(APIView).

The validators are not getting called on GET request of the viewset via URLS, but the GET request is working.


def validate(self, attrs):
if attrs.get('password') != attrs.get('confirm_password'):
raise serializers.ValidationError("Those passwords don't match.")
return attrs
OR

class Meta:
model = *********
fields = ('***', )
validators = [
trigger_validator
]

Thanks,
Maurya

Andréas Kühne

unread,
Jan 24, 2019, 7:40:35 AM1/24/19
to django...@googlegroups.com
Hi,

Validators are only called when you are updating something on the model - a get request doesn't update anything and the validators will not be called (there is no data sent to the server to validate). The validators will be called on a POST, PUT or PATCH request.

Regards,

Andréas


--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/ef2204c4-eed2-411c-a157-d8e1d1d63744%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Maurya Allimuthu

unread,
Jan 24, 2019, 8:47:36 PM1/24/19
to django...@googlegroups.com
Hi Andreas Kuhne,

Thanks on the quick answer and great help. :-)

Hi Andreas Kuhne/All,

Is there a way or any kind of approach, I can use validators/anything in GET method to format/change the output of the data coming from database and before getting changed by serializer as stream of strings.
Please let me know if any.

Regards,
Maurya

Andréas Kühne

unread,
Jan 25, 2019, 9:50:39 AM1/25/19
to django...@googlegroups.com
If you want to change the output, you can override the fields that you output in your serializer. That's what the fields are for?

I think it would be helpful if you provide more information because at least I don't really understand your use-case. 

The way I would do it is to change the fields and format them the way I wanted them to be on a get request.

Regards,

Andréas


Maurya Allimuthu

unread,
Jan 28, 2019, 9:26:03 PM1/28/19
to Django users
Many thanks Andreas :-)

Maurya Allimuthu

unread,
Jan 28, 2019, 9:37:22 PM1/28/19
to django...@googlegroups.com
Hi  Andréas,

I have fixed it. like subclassing the serializer field class and overriding the to_representation for per field.
Thanks for the help once again.

Thanks,
Maurya

Ayomide Onibokun

unread,
Jan 29, 2019, 7:48:01 AM1/29/19
to django...@googlegroups.com
does python has a similar cms like wordpress?

Reply all
Reply to author
Forward
0 new messages