Django поля формы не отображаются - PullRequest
0 голосов
/ 19 апреля 2020

Я пытался настроить модель «Пользователь», представленную в 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

Это то, что печатается на терминале (поля формы). Почему все поля (сделанные на заказ) не загружаются?

1 Ответ

0 голосов
/ 19 апреля 2020

Вы по-прежнему используете UserCreationForm в виде вместо нового CreateUserForm.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...