首页 > 解决方案 > 当单击更改密码是空白页但密码已更改 django

问题描述

我创建登录页面。我的问题是“忘记密码”。用户输入邮件,django 发送带有链接的消息。当点击它必须更改密码。完成后单击“更改密码”,我们应该进入下一页,但它是空白的。但是密码改了。

帐户/urls.py

from django.urls import path, reverse_lazy
from django.contrib.auth import views as auth_views
from . import views

app_name = 'account'

urlpatterns = [
    path('', auth_views.LoginView.as_view(template_name='account/login.html'), name='login'),
    path('logout/', auth_views.LogoutView.
         as_view(template_name='registration/logout.html'), name='logout'),
    path('logout_then_login/', auth_views.logout_then_login, name='logout_then_login'),
    path('dashboard/', views.dashboard, name='dashboard'),
    path('password_change/', auth_views.PasswordChangeView.
         as_view(success_url=reverse_lazy('account:password_change_done')), name='password_change'),
    path('password_change_done/', auth_views.PasswordChangeDoneView.
         as_view(template_name='registration/password_change_done.html'),
         name='password_change_done'),
    path('password_reset/', auth_views.PasswordResetView.
         as_view(template_name='registration/password_reset_form.html',
                 html_email_template_name='registration/password_reset_mail.html'),
         name='password_reset'),
    path('password_reset/done', auth_views.PasswordResetDoneView.
         as_view(template_name='registration/password_reset_done.html'),
         name='password_reset_done'),
    path('reset/<uidb64>/<token>/', auth_views.PasswordResetConfirmView.
         as_view(template_name='registration/password_reset_confirm.html'),
         name='password_reset_confirm'),
    path('reset/done', auth_views.PasswordResetCompleteView.
         as_view(template_name='registration/password_reset_complete.html'),
         name='password_reset_complete')
]

password_reset_complete.html

{% extends "base.html" %}

{% block title %}
    <p>Password was changed</p>
{% endblock %}

设置.py

LOGIN_REDIRECT_URL = reverse_lazy('account:dashboard')
LOGIN_URL = reverse_lazy('account:login')
SUCCESS_URL = reverse_lazy('account:password_change_done')

它是否正确:

网址.py

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

标签: pythondjangopython-3.xdjango-2.1

解决方案


我假设base.html包含一个内容块。所以你只是错过了

{% block content %}{% endblock %}

的一部分password_reset_complete.html


推荐阅读