Я пытался настроить модель «Пользователь», представленную в Django, добавив несколько полей через forms.py. Но проблема в том, что когда я рендерил форму, эти поля не вступают в силу. Пожалуйста, вы можете выяснить ошибку.
forms.py
class CreateUserForm(UserCreationForm):
first_name = forms.CharField(max_length=30, required=True, help_text='Enter your name.', widget=forms.TextInput(attrs={'placeholder':'first_name'}))
last_name = forms.CharField(max_length=30, required=False, widget=forms.TextInput(attrs={'placeholder':'last_name'}))
email = forms.EmailField(required=True, widget=forms.EmailInput(attrs={'placeholder': 'Email'}), max_length=254, help_text='Enter a valid email address')
class Meta(UserCreationForm.Meta):
model = User
fields = ['username', 'first_name', 'last_name', 'email', 'password1', 'password2']
views.py
def register(request):
if request.method == 'GET':
form = UserCreationForm()
context = {'form': form}
print()
for field in form:
print(field)
print()
return render(request, 'register.html', context=context)
elif request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
form.save()
redirect('login/')
else:
E = []
for error in form.errors:
E.append(error)
return HttpResponse(E)
Поэтому всякий раз, когда я делал запрос GET для страницы регистрации , Все поля не печатаются. Таким образом, не отображаются, когда мы визуализируем страницу html.
<input type="text" name="username" maxlength="150" autocapitalize="none" autocomplete="username" autofocus required id="id_username">
<input type="password" name="password1" autocomplete="new-password" required id="id_password1">
<input type="password" name="password2" autocomplete="new-password" required id="id_password2">
[19/Apr/2020 20:30:20] "GET /register/ HTTP/1.1" 200 5012
Это то, что печатается на терминале (поля формы). Почему все поля (сделанные на заказ) не загружаются?