This is my serializers.py (I want to create a serializer for the built-in User model):
from rest_framework import serializers from django.contrib.auth.models import User class UserSerializer(serializers.ModelSerializer): class Meta: model = User fields = ('username', 'password', 'email', )
I know that the Django Rest Framework has its own field checks, because when I try to create a user using a username that already exists, an error occurs:
{'username': [u'This field must be unique.']}
I want to customize the error message and make it say, "This username has already been completed. Please try again," rather than "This field must be unique."
It also has a built-in regular expression validator, because when I create a user name with an exclamation mark, it says:
{'username': [u'Enter a valid username. This value may contain only letters, numbers and @/./+/-/_ characters.']}
I want to configure the regex validator to just say "Invalid username."
How to configure all error messages that each field has?
Note: according to this post: Custom error messages in the Django Rest Framework serializer I can do:
class UserSerializer(serializers.ModelSerializer): class Meta: model = User def __init__(self, *args, **kwargs): super(UserSerializer, self).__init__(*args, **kwargs) self.fields['username'].error_messages['required'] = u'My custom required msg'
But what should I do for the 'unique' and 'regex' validators? I tried to do
self.fields['username'].error_messages['regex'] = u'My custom required msg'
and
self.fields['username'].error_messages['validators'] = u'My custom required msg'
but not one of them worked.