Django方法不允许(POST):password_reset / done

我是Django / Python的新手 .

我正在尝试实现一种通过电子邮件重置用户密码的机制 . 为了做到这一点,我试图尽可能多地使用Django本机库django.contrib.auth

虽然,在处理我自定义的password_reset_form.html(见下文)时,我收到一个错误:

不允许的方法(POST):/ accounts / 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 Tutorial ...

回答(1)

2 years ago

您发布到错误的网址 . password_reset_done 是用于确认密码已重置的视图 - 用户在成功重置后被重定向到该视图 .

该教程在表单上有 action="" - 这与您的内容不同 . 您需要更改表单以使用 action="" (这是当前URL) . 或者如果由于某种原因你想要更明确,那么:

action="{% url 'password_reset' %}"