首页 > 解决方案 > 在 django 中自定义注册表单中的重复输入错误

问题描述

我们有一个 django 项目应用程序名称“博客”。我们已经为具有相同字段的自定义注册,例如:姓名、手机、电子邮件和密码。在 MYSQL DB 中,它为表 blog_Customuser 给出“重复输入错误”,并且在表中输入了电子邮件、密码,但没有为移动列输入。也没有对 account_emailaddress 表进行任何条目。

此外,在调试代码时,不会停留在标记为调试的任何以下行代码处。

进入 Settings.py -

ACCOUNT_SIGNUP_FORM_CLASS = 'blog.forms.AllauthUserRegisterForm' 

Form.py 条目如下所示:

class AllauthUserRegisterForm(forms.ModelForm):
name = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'Name'}))
mobile = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'Mobile'}))
#password = forms.CharField(widget = forms.PasswordInput)
class Meta:
    model = CustomUser
    fields = ['email', 'mobile']

Models.py 条目如下所示:

class CustomUser(AbstractUser):
name = models.CharField(default='', max_length=200, blank=True)
mobile = models.PositiveIntegerField(null=True, blank=True)
email = models.EmailField(unique=True)
USERNAME_FIELD = 'email'
# to enforce that you require email field to be associated with
# every user at registration
REQUIRED_FIELDS = ["mobile"]
def __str__(self):
    return self.email

Table blog_customuser column details 
`id` int(11) NOT NULL AUTO_INCREMENT,
 `password` varchar(128) NOT NULL,
 `last_login` datetime(6) DEFAULT NULL,
 `is_superuser` tinyint(1) NOT NULL,
 `username` varchar(150) NOT NULL,
 `first_name` varchar(30) NOT NULL,
 `last_name` varchar(30) NOT NULL,
 `is_staff` tinyint(1) NOT NULL,
 `is_active` tinyint(1) NOT NULL,
 `date_joined` datetime(6) NOT NULL,
 `mobile` varchar(12) DEFAULT NULL,
 `name` varchar(200) NOT NULL,
 `email` varchar(254) NOT NULL,

标签: djangodjango-formsdjango-viewsdjango-authenticationdjango-allauth

解决方案


推荐阅读