You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

29 lines
1.0 KiB

from rest_framework import serializers
from django.contrib.auth.password_validation import validate_password
from apps.account.models import User
class WebUserRegisterSerializer(serializers.ModelSerializer):
password = serializers.CharField(write_only=True, validators=[validate_password])
fcm = serializers.CharField(required=False, allow_blank=True, allow_null=True)
email = serializers.EmailField()
class Meta:
model = User
fields = ['id', 'fullname', 'email', 'password', 'fcm']
extra_kwargs = {
'fullname': {'required': True},
'email': {'required': True},
}
def validate_email(self, value):
normalized_email = User.objects.normalize_email(value)
if User.objects.filter(email=normalized_email).exists():
raise serializers.ValidationError("This email is already registered.")
return normalized_email
def create(self, validated_data):
user = super().create(validated_data)
return user