Как я могу сохранить имя пользователя в базе данных в виде электронного письма?

Мне нужна страница регистрации с 3 полями (email, пароль и повторный пароль). Моя цель состоит в том, чтобы когда пользователь вводит адрес электронной почты, он также сохранялся в базе данных как имя пользователя. Я буду очень рад, если кто-то сможет мне помочь, я сижу уже х часов, пытаясь решить эту проблему. Большое спасибо!

model.py

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    email_confirmed = models.BooleanField(default=False)

@receiver(post_save, sender=User)
def update_user_profile(sender, instance, created, **kwargs):
    if created:
        Profile.objects.create(user=instance)
        instance.profile.save()

forms.py

class CreateUserForm(UserCreationForm):
    class Meta:
        model = User
        fields = ['username', 'email', 'password1', 'password2']



# Sign Up Form
class SignUpForm(UserCreationForm):
   # first_name = forms.CharField(max_length=30, required=False, help_text='Optional')
   # last_name = forms.CharField(max_length=30, required=False, help_text='Optional')
    email = forms.EmailField(max_length=254, help_text='Enter a valid email address')

    class Meta:
        model = User
        fields = [
            'username',
            'password1',
            'password2',
            ]

views.py

Мне нужна ваша помощь

Если вы хотите использовать email вместо модели по умолчанию username, вы должны перезаписать модель по умолчанию User пользовательской моделью


from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin

class User(AbstractBaseUser, PermissionsMixin):
    # Use the email for logging in
    email = models.EmailField(max_length=254, unique=True)

    USERNAME_FIELD = 'email'
Вернуться на верх