diff --git a/custom_user/serializers.py b/custom_user/serializers.py index c98086d..dffc92f 100644 --- a/custom_user/serializers.py +++ b/custom_user/serializers.py @@ -17,11 +17,14 @@ class CustomUserCreateSerializer(serializers.ModelSerializer): """ Сериализатор модели CustomUser. Используется при вызове GET запросов в контроллере CustomUserCreateView + password_confirmation: поле для подтверждения введенного пароля. Обработка исключений происходит в методе create. """ + password_confirmation = serializers.CharField(write_only=True) + class Meta: model = CustomUser - fields = ('password', 'email', ) + fields = ('email', 'password', 'password_confirmation', ) def create(self, validated_data): """ @@ -31,5 +34,13 @@ def create(self, validated_data): :return: Создается новый экземпляр класса CustomUser """ + password_confirmation = validated_data.pop('password_confirmation', None) + + if password_confirmation is None: + raise serializers.ValidationError("Поле 'password_confirmation' обязательно") + + if validated_data.get('password') != password_confirmation: + raise serializers.ValidationError("Пароль и его подтверждение не совпадают") + new_custom_user = CustomUser.objects.create_user(**validated_data) return new_custom_user