Registro con email

This commit is contained in:
rexcom28
2023-05-25 12:31:24 -06:00
parent 050ea95e2d
commit 34a80e3556
3 changed files with 82 additions and 13 deletions

View File

@@ -1,4 +1,6 @@
from rest_framework import serializers
from django.contrib.auth import get_user_model
from allauth.account.models import EmailAddress
from .models import ClientesA24
class ClientesA24Serailizer(serializers.ModelSerializer):
@@ -8,4 +10,38 @@ class ClientesA24Serailizer(serializers.ModelSerializer):
class SerialiazerA24(serializers.ModelSerializer):
pass
pass
User = get_user_model()
class SignupSerializer(serializers.Serializer):
password = serializers.CharField(write_only=True)
password2 = serializers.CharField(write_only=True)
class Meta:
model = User
fields = ['username', 'password', 'email', 'first_name', 'last_name']
def validate(self, data):
print(f'DATA {data}')
if data['password'] != data['password2']:
raise serializers.ValidationError("Las contraseñas no coinciden.")
return data
def create(self, validated_data):
print(f'CREATE {validated_data}')
password2 = validated_data.get('password2')
if password2:
validated_data.pop('password2')
# Asegurarse de tener el campo 'username' en validated_data
username = self.context['request'].data.get('username')
email = self.context['request'].data.get('email')
first_name = self.context['request'].data.get('first_name')
last_name = self.context['request'].data.get('last_name')
if not username:
raise serializers.ValidationError("El campo 'username' es requerido.")
# Crear el usuario con los datos validados
user = User.objects.create_user(username=username, password=validated_data['password'], email=email, first_name=first_name, last_name= last_name)
# Crea el objeto Email asociado al usuario
EmailAddress.objects.create(user=user, email=user.email, primary=True, verified=False)
return user