allauth - принудить нового пользователя предоставить обязательные поля - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь добавить django-allauth к пользовательской модели пользователя.

class User(AbstractBaseUser, PermissionsMixin):
    email = models.EmailField(max_length=254, unique=True, help_text="A verification link will be sent to this email-id")
    name = models.CharField(max_length=254, null=True)
    is_staff = models.BooleanField(default=False)
    is_superuser = models.BooleanField(default=False)
    is_active = models.BooleanField(default=True)
    phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$', message="Please enter a valid phone number.")
    mobile = models.CharField(max_length=16,validators=[phone_regex],null=True,)

    USERNAME_FIELD = 'email'
    EMAIL_FIELD = 'email'
    REQUIRED_FIELDS = ['mobile','name']

Вот моя пользовательская форма

class CustomUserCreationForm(UserCreationForm):
    password2=None

    def signup(self, request, user):
        user.mobile = self.cleaned_data['mobile']
        user.name = self.cleaned_data['name']
        user.save()
        return user

    class Meta(UserCreationForm):
        model = User
        fields = ('name','email','mobile')

и в settings.py, я ACCOUNT_FORMS = {'signup':'users.forms.CustomUserCreationForm'}

Когда я открываю страницу /signup/, отображается пользовательская форма и сохраняются дополнительные значения.

Однако, когда я нажимаю Sign In, а затем нажимаю наGoogle, а затем укажите адрес электронной почты и пароль пользователя, которого нет в системе , после перенаправления пользователь создается без запроса дополнительных полей .

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

(Пожалуйста, дайте мне знать, если мне нужно предоставить дополнительные настройки или любой другой код)

Спасибо

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