Поле моей формы не отображается в веб-приложении
Я пытаюсь сделать свой первый личный кабинет веб-приложения и у меня с этим проблемы. Я создал поле био-модель в моделях и попытался вывести его в формы, но что-то идет не так - это поле не хочет отображаться на сайте. Остальные поля работают. В админ панели все в порядке.
Модели:
from django.db import models
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
email = models.EmailField("email address", unique=True)
bio = models.TextField("bio", max_length = 300, blank=True)
Формы:
class ChangeUserForm(UserChangeForm):
password1 = forms.CharField(
label=("Password"),
strip=False,
widget=forms.PasswordInput(attrs={"autocomplete": "new-password"}),
)
password2 = forms.CharField(
label=("Password confirmation"),
widget=forms.PasswordInput(attrs={"autocomplete": "new-password"}),
strip=False,
)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['username'].widget.attrs.update({'class':'input100','placeholder':'Username','name':'username'})
self.fields['email'].widget.attrs.update({'class':'input100','placeholder':'Email','name':'email'})
self.fields['password1'].widget.attrs.update({'class':'input100','placeholder':'Password','name':'password'})
self.fields['password2'].widget.attrs.update({'class':'input100','placeholder':'Repeat password','name':'password'})
class Meta:
model = User
fields = ['username', 'email', 'bio', 'password', 'password2']
widgets = {
'bio': TextInput(attrs={
'class':'input100',
'placeholder':'Your bio',
'name':'bio'
}),
}
Просмотров:
def edit_profile(request):
form = CreateUserForm(initial={
'username':request.user.username,
'email':request.user.email,
'bio':request.user.bio,
})
if request.method == 'POST':
form = ChangeUserForm(request.POST)
if form.is_valid():
form.save()
return redirect(home)
else:
return render(request, 'users/edit.html', {'form':form})
else:
return render(request, 'users/edit.html', {'form':form,})
HTML:
<div class="wrap-input100 m-b-16">
<div class="input100">{{ form.email }}</div>
<span class="focus-input100"></span>
</div>
<div class="wrap-input100 m-b-16">
<div class="input100">{{ form.bio }}</div>
<span class="focus-input100"></span>
</div>
Здесь мы видим, что поле email появляется, а био - нет