Django выводит поле модели на основе значения другого поля
У меня есть модель CustomUser
class Account(AbstractBaseUser):
email = models.EmailField(verbose_name = "email", max_length = 60, unique = True)
username = models.CharField(max_length = 30, unique = True)
Я использую форму создания пользователя для регистрации новых пользователей следующим образом,
class RegistrationForm(UserCreationForm):
email = forms.EmailField(max_length = 60, help_text = "This will be your login.")
class Meta:
model = Account
fields = ("email", "username", "password1", "password2")
Я хочу удалить "имя пользователя" из полей формы, так
fields = ("email", "password1", "password2")
Затем, когда пользователь отправляет форму, я хочу вставить значение в поле имени пользователя, основываясь на электронной почте, предоставленной пользователем, например, email = abc@xyz.com, then username = abc.
Как мне это сделать?
В Django User Model поле username является обязательным полем, поэтому вы можете присвоить значение None следующим образом
class Account(AbstractBaseUser):
username = None
email = models.EmailField(verbose_name = "email", max_length = 60, unique = True)
username = models.CharField(max_length = 30, unique = True)
затем примените команду makemigrations и migrate