Как я могу сохранить имя пользователя в базе данных в виде электронного письма?
Мне нужна страница регистрации с 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'