我正在尝试将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,然后提供不在系统中的用户的电子邮件和密码后, 无需创建其他字段即可创建用户。
在通过社交身份验证后,如何强制新用户提供必填字段?
(请告诉我是否需要提供其他设置或任何其他代码)
谢谢