Django - автозаполнение полей при повторной визуализации формы - PullRequest
0 голосов
/ 06 ноября 2019

В моем проекте есть форма Django, которую я затем передаю своему шаблону. Эта форма позволяет пользователям зарегистрироваться для учетной записи.

Если пользователь допустил ошибку, я использую Django messages , чтобы вернуть ошибку пользователю, а затем перенаправить на ту же страницу с ошибкой. Эта ошибка успешно отображается.

Однако все предыдущие данные, введенные пользователем в форму, теряются. Что я хочу, так это перезагрузить страницу с заполненной формой со всеми предыдущими данными, введенными пользователем. Таким образом, они могут легко исправить данные без повторного ввода всей информации.

Кто-нибудь знает, как этого добиться? Спасибо.

views.py:

    if form.cleaned_data['password'] != form.cleaned_data['confirmPassword']:
        messages.error(request, 'Password fields do not match')
        return redirect('signup')
    else:
        try:
            user = User.objects.get(username=form.cleaned_data['username'])
            messages.error(request, 'Username has already been taken') 
            return redirect('signup')

Шаблон:

{% if messages %}
            {% for message in messages %}
                 <span  class="errorMessageSignup"> <img src="{% static 'wrongcross.png' %}" style="position:absolute;" height="17px" width="17px">&nbsp;&nbsp;&nbsp;&nbsp; <b>{{ message }}</b></span>
            {% endfor %}
        {% endif %}

Ответы [ 2 ]

0 голосов
/ 06 ноября 2019

Вы можете попробовать это в своем шаблоне, где у вас есть форма.

 <input type="text" name="username" {% if form.username.value %} value="{{form.username.value}}" {% endif %}>
 <input type="password" name="password" {% if form.password.value %} value="{{form.password.value}}" {% endif %}>
0 голосов
/ 06 ноября 2019

Вам необходимо сохранить данные об имени пользователя и пароле и передать их в шаблон, где бы вы их ни отображали. Это маленькое руководство должно помочь вам :)

...