Мой вопрос - Как создать настраиваемое текстовое поле в django / contrib / auth / forms.py. ?
Я пытаюсь настроить модель пользователя по умолчанию в Django. Я добавляю тестовое поле с именем «bio»
Мой код до сих пор в файле /python3.6/site-packages/django/contrib/auth/forms.py
, как показано ниже -
class UserCreationForm(forms.ModelForm):
"""
A form that creates a user, with no privileges, from the given username and
password.
"""
error_messages = {
'password_mismatch': _("The two password fields didn't match."),
}
password1 = forms.CharField(
label=_("Password"),
strip=False,
widget=forms.PasswordInput,
help_text=password_validation.password_validators_help_text_html(),
)
password2 = forms.CharField(
label=_("Password confirmation"),
widget=forms.PasswordInput,
strip=False,
help_text=_("Enter the same password as before, for verification."),
)
bio = forms.CharField( #FOO_bio # this value --not getting saved in PSQL
label=_("bio_test within Forms.py"),
#widget=forms.PasswordInput, #Didnt work thus switched to forms.TextInput
widget=forms.TextInput,
strip=False,
help_text=_("Enter some dummy BIO here ."),
)
Далее в этом файле в рамках определенного метода -def clean_password2(self)
, я пытаюсь добавить «био» как
def clean_password2(self):
password1 = self.cleaned_data.get("password1")
password2 = self.cleaned_data.get("password2")
bio = self.cleaned_data.get("bio") # I have no clue how to do this ?
print(bio) #prints None in the terminal
Я понимаю, что в DICT нет ключа с именем «био» - cleaned_data.
В файле - /site-packages/django/contrib/auth/models.py
, добавили «био» как models.TextField
, внутри класса class AbstractUser(AbstractBaseUser, PermissionsMixin):
bio = models.TextField(
_('bio'),
max_length=500, blank=True)
Настраиваемое поле «био» отображается вФорма регистрации, тестовый пользователь вводит текстовое значение - форма отправляется, но ничего не сохраняется в psql для «био». Новый пользователь зарегистрирован и может быть замечен как в - psql в терминале, так и в Django Admin.
Также в админке Django - когда я перехожу по URL - http://digitalcognition.co.in/admin/auth/user/16/change/, я вижу текстовое поле с именем «Bio» в разделе «Личная информация», но оно снова пустое. «Адрес электронной почты», «Имя пользователя» и «Пароль» отображаются как обычно.