register logic
This commit is contained in:
@@ -5,7 +5,7 @@ from django.db.utils import IntegrityError
|
||||
|
||||
from api.models import UserProfile
|
||||
|
||||
class UserResponceSerializer(serializers.Serializer):
|
||||
class UserResponseSerializer(serializers.Serializer):
|
||||
id = serializers.IntegerField()
|
||||
email = serializers.EmailField()
|
||||
name = serializers.CharField(source='first_name')
|
||||
@@ -24,16 +24,17 @@ class ClientRegisterSerializer(serializers.ModelSerializer):
|
||||
phone_number = serializers.CharField(max_length=13)
|
||||
privacy_accepted = serializers.BooleanField()
|
||||
email = serializers.EmailField(required=True)
|
||||
username = serializers.CharField(source='first_name')
|
||||
name = serializers.CharField(required=True)
|
||||
surname = serializers.CharField(required=True)
|
||||
uuid = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = User
|
||||
fields = ['id', 'uuid', 'username', 'email', 'password', 'phone_number', 'privacy_accepted']
|
||||
fields = ['id', 'uuid', 'name', 'surname', 'email', 'password', 'phone_number', 'privacy_accepted']
|
||||
extra_kwargs = {
|
||||
'password' : {'write_only':True},
|
||||
'email' : {'required' : True, 'unique': True},
|
||||
'phone_number' : {'required' : True, 'unique': True},
|
||||
'password': {'write_only': True},
|
||||
'email': {'required': True},
|
||||
'phone_number': {'required': True},
|
||||
}
|
||||
|
||||
def validate_phone_number(self, value):
|
||||
@@ -44,18 +45,21 @@ class ClientRegisterSerializer(serializers.ModelSerializer):
|
||||
def validate_privacy_accepted(self, value):
|
||||
if not value:
|
||||
raise serializers.ValidationError("Необходимо принять условия политики конфиденциальности")
|
||||
return value
|
||||
|
||||
def create(self, validated_data):
|
||||
privacy_accepted = validated_data.pop('privacy_accepted')
|
||||
phone_number = validated_data.pop('phone_number')
|
||||
name = validated_data.pop('first_name')
|
||||
name = validated_data.pop('name')
|
||||
surname = validated_data.pop('surname')
|
||||
|
||||
try:
|
||||
user = User.objects.create_user(
|
||||
username=validated_data['name'],
|
||||
username=validated_data['email'], # используем email как username
|
||||
email=validated_data['email'],
|
||||
password=validated_data['password'],
|
||||
first_name = name,
|
||||
first_name=name,
|
||||
last_name=surname
|
||||
)
|
||||
|
||||
UserProfile.objects.create(
|
||||
|
||||
Reference in New Issue
Block a user