This is a Django rest project I'm creating a user registration form .. I wrote a validation for username like below but my custom validation error is not showing and it shows a default message like below... how can I fix this?
My other question is: Whats the difference between def validate_username
and def clean_username
Thank You
This is the default Django message:
"{
"username": [
"A user with that username already exists."
]
}
"
This is my view:
class UserRegisterApiView(CreateAPIView):
permission_classes = [AllowAny]
serializer_class = UserRegisterSerializer
queryset = User.objects.all()
This is my serilizer:
class UserRegisterSerializer(ModelSerializer):
#email2 = EmailField(label='confirm email')
email = EmailField(label='email', )
class Meta:
model = User
fields = [
'username',
'first_name',
'email',
'password',
]
extra_kwargs = {
"password": {
"write_only": True
}
}
# check if the user name is taken
def validate_username(self, value):
username = value
qs = User.objects.filter(username=username)
if qs.exists():
raise ValidationError("این نام کاربری آزاد نمیباشد")
return value