Я пытаюсь добавить 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, а затем укажите адрес электронной почты и пароль пользователя, которого нет в системе , после перенаправления пользователь создается без запроса дополнительных полей .
Как я могу заставить нового пользователя предоставлять обязательные поля после прохождения аутентификации через социальные сети?
(Пожалуйста, дайте мне знать, если мне нужно предоставить дополнительные настройки или любой другой код)
Спасибо