Сохранение настраиваемого поля формы в Django Allauth - PullRequest
0 голосов
/ 26 августа 2018

Я использую класс Django Allauth SignUpForm.Раньше у меня была договоренность, которая включала только username, email, and password, эти поля работали, поскольку они являются родными для класса.Однако я решил удалить username и заменить его на full_name, как показано на моей обновленной модели:

class User(AbstractBaseUser):
    full_name   = models.CharField(max_length=30)

    username    = models.CharField(max_length=15, unique=True, error_messages={
        'unique': ("Username has already been taken.")
    })

    email       = models.EmailField(max_length=100, unique=True, error_messages={
        'unique': "Email has already been taken."
    })

objects = UserManager()

    USERNAME_FIELD = 'username'
    REQUIRED_FIELDS = ['email']  

Я перенес свою базу данных для достижения новых изменений.Затем я создал новую форму для своей формы:

class RegisterForm(SignupForm):
    full_name = forms.CharField(max_length=30)

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.fields['full_name'].widget = forms.TextInput(attrs={"placeholder": ""})

        self.fields['email'].widget = forms.EmailInput(attrs={"placeholder": ""})
        self.fields['email'].label = "Email"

        self.fields['password1'].widget = forms.PasswordInput(attrs={"placeholder": ""})

    def save(self, request):
        user = super(RegisterForm, self).save(request)
        user.full_name = clean_data["full_name"]
        user.save()
        return user

Однако это не создает нового пользователя, когда я пытаюсь зарегистрироваться.Что я делаю неправильно?Как я могу сделать так, чтобы пользователь был создан и получил имя пользователя, автоматически сгенерированное на основе его имени?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...