Ошибка повторяющегося ввода в настройке формы регистрации в Django - PullRequest
0 голосов
/ 05 июля 2018

У нас есть название приложения проекта 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,
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...