Django error_messages всегда отображается в форме после переопределения - PullRequest
1 голос
/ 12 февраля 2020

Я переопределил встроенную Django password_mismatch ошибку для подтверждения сброса пароля. В моем шаблоне ошибка всегда отображается, как только она загружена. Процедура сброса пароля работает без сбоев, но я не могу избавиться от отображаемой ошибки, даже не введя ничего. Как я могу это сделать?

Мой код показан ниже.

forms.py

class PasswordResetConfirmationForm(SetPasswordForm):
new_password1 = CharField(max_length=35, required=True, widget=PasswordInput, error_messages={'required': 'Please do not leave blank.'})
new_password2 = CharField(max_length=35, required=True, widget=PasswordInput, error_messages={'required': 'Please do not leave blank.'})

error_messages = {
    'password_mismatch': 'The two passwords should never match.',
}

views.py

class PasswordResetConfirmationView(PasswordResetConfirmView):
form_class = PasswordResetConfirmationForm

def password_reset_confirm(self):
    return render(self.request, 'accounts/registration/password_reset_confirm.html')

форма в password_reset_confirm. html

<form method="post" novalidate="novalidate" class="popup-form empty-form">
      {% csrf_token %}
        <label for="{{ form.new_password1.id_for_label }}">Password</label>
        {{ form.new_password1.errors }}
        {% render_field form.new_password1 placeholder="New password" %}

        <label for="{{ form.new_password2.id_for_label }}">Re-enter password</label>
        <p>{{ form.error_messages.password_mismatch }}</p>
        {% render_field form.new_password2 placeholder="New password again" %}
      <input type="submit" value="Change password">
    </form>
...