почему я не могу получить страницу PasswordResetDoneView? - PullRequest
1 голос
/ 29 января 2020

когда я отправляю свою форму электронной почты со страницы PasswordResetView , электронная почта появляется через URL следующим образом: http://127.0.0.1: 8000 / account / change-password /? 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 Ответ

1 голос
/ 29 января 2020

Поместите method="post" в тег формы, а также {% csrf_token %}, вероятно, из-за метода GET то же представление отображается и form_valid не вызывается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...