У нас есть название приложения проекта django "блог". Мы создали индивидуальную регистрацию для таких же полей, как: Имя, номер мобильного телефона, адрес электронной почты и пароль.
В MYSQL DB он выдает «Duplicate Entry Error» для таблицы 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,