allauth-强制新用户提供必填字段

时间:2019-10-04 10:00:33

标签: django django-allauth

我正在尝试将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,然后提供不在系统中的用户的电子邮件和密码后, 无需创建其他字段即可创建用户

在通过社交身份验证后,如何强制新用户提供必填字段?

(请告诉我是否需要提供其他设置或任何其他代码)

谢谢

0 个答案:

没有答案