Метод Джанго не разрешен (POST): password_reset/done

Я новичок в Django / Python.

Я пытаюсь реализовать механизм сброса пароля пользователя по электронной почте. Для этого я стараюсь максимально использовать нативную библиотеку Django django.contrib.auth

Хотя при обработке моего нестандартного password_reset_form.html (см. Ниже) я получил ошибку:

Метод не разрешен (POST): /account /password_reset/done/

<form method="post" class="m-t" role="form" action="{% url 'password_reset_done' %}">
    {% csrf_token %}
    <div class="form-group">
        <input type="email" class="form-control" id="id_forgot_email" name="email" placeholder="Email address" required="">
    </div>

    <button type="submit" class="btn btn-primary block full-width m-b">Reset password</button>
</form>

Кто-нибудь знает, почему метод post не разрешен? Я проверил следующий учебник Django, который использует метод post в том же файле...

1 ответ

Вы публикуете не по адресу. password_reset_done это представление, используемое для подтверждения того, что пароль был сброшен - пользователь перенаправляется в это представление после успешного сброса.

Учебник имеет action="" на форме - которая отличается от того, что у вас есть в вашей. Вы должны изменить свою форму, чтобы использовать action="" (который является текущим URL). Или, если по какой-то причине вы хотите быть более явным, то:

action="{% url 'password_reset' %}"
Другие вопросы по тегам