为什么我无法获得PasswordResetDoneView页面?

时间:2020-01-29 12:57:28

标签: django

当我从 PasswordResetView 页面提交我的电子邮件表单时,该电子邮件通过URL出现,如下所示:http://127.0.0.1:8000/account/password-change/?email=medoabdin%40gmail.com并且没有将我定向到 PasswordResetDoneView 页面,但我没有收到错误。
如何显示 PasswordResetDoneView 消息页面

urls.py

from django.urls import path
from . import views
from django.contrib.auth.views import (
    LoginView,
    LogoutView,
    PasswordResetView,
    PasswordResetDoneView)
from django.urls import reverse_lazy

app_name = 'account'

urlpatterns = [
    # /account/login/
    path('login/', LoginView.as_view(template_name='account/login.html'), name='login'),
    # /account/logout/
    path('logout/', LogoutView.as_view(template_name='account/logout.html'), name='logout'),
    # /account/register/
    path('register/', views.register, name='register'),
    # /account/view-profile/
    path('view-profile/', views.view_profile, name='view_profile'),
    # /account/password-change/
    path('password-change/', PasswordResetView.as_view(template_name='account/password_change_view.html', success_url=reverse_lazy('account:password_change_done'), email_template_name='account/reset_password_email.html'), name='password_change'),
    # /account/password-change/done/
    path('password-chane/done/', PasswordResetDoneView.as_view(template_name='account/password_change_done.html'), name='password_change_done'),

]

password_change_done.html

{% extends 'base.html' %}
{% block title %} Success Message {% endblock %}

{% block body %}
    {% if not user.is_authenticated %}
        <div class="password-change-done">
            <div class="container">
                <h1 class="text-primary"> The Password Has Been Sent </h1>
                <p class="lead text-success"> Check your email and following the rest of record until you can go back your own email. </p>
                <p class="lead text-success"> You need to follow the instructions to get what you want. </p>
            </div>
        </div>
    {% endif %}
{% endblock %}

password_change_view.html

{% extends 'base.html' %}
{% block title %} Chnage your Passowrd {% endblock %}

{% block body %}
    {% if not user.is_authenticated %}
        <div class="password-change">
            <div class="container">
                <div class="my-form">
                    <form class="post">
                        {{ form.as_p }}
                        <button type="submit" class="btn btn-success">Go</button>
                    </form>
                </div>
            </div>
        </div>
    {% endif %}
{% endblock %}

settings.py

urlpatterns = [
    path('', include('index.urls')),
    path('account/', include('account.urls')),
    path('admin/', admin.site.urls),
    path('', include('django.contrib.auth.urls')),
]

1 个答案:

答案 0 :(得分:1)

method="post"{% csrf_token %}分别放在表单标签中,可能是因为GET方法呈现了相同的视图,而form_valid没有被调用。

相关问题