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

Вернуться на верх