You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django密码重置后跳转报NoReverseMatch at login错误求助

问题原因

你为account应用配置了app_name = 'account'命名空间,所以该应用下所有url的反向解析都需要加account:前缀。
触发错误的login引用不在你自己编写的代码里,而是在Django内置的PasswordResetCompleteView默认模板中:内置模板里指向登录页的链接写的是{% url 'login' %},没有携带命名空间,所以找不到对应路由。

解决方案

方案1(推荐):自定义密码重置完成页模板,覆盖内置模板

  1. 在你的项目模板目录下新建registration/password_reset_complete.html文件
  2. 写入自定义内容,将登录链接改为带命名空间的版本,示例代码:
{% block content %}
<div class="page-title">
    <h1>密码重置完成</h1>
</div>
<br>
<div class="login-container">
    <div class="login-box">
        <br>
        <h3 style="text-align: center;">密码重置成功</h3>
        <p style="text-align: center;">你的密码已修改完成,可以<a href="{% url 'account:login' %}">点击此处登录</a></p>
    </div>
</div>
{% endblock %}

方案2:添加全局login路由别名

如果你不想修改模板,也可以在项目根目录的urls.py中添加一条全局的login路由,直接指向内置登录视图,代码示例:

from django.contrib.auth import views as auth_views

urlpatterns = [
    # 原有其他路由
    path('login/', auth_views.LoginView.as_view(), name='login'),
    path('account/', include('account.urls')),
]

内容的提问来源于stack exchange,提问作者TheSunbathingCrow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 03:36:01