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

Django重置密码时出现NoReverseMatch错误,请求技术帮助

问题排查与修复

核心错误:URL反向解析缺少必要参数

你的reset_password路由定义时要求传入<str:active_code>参数,但模板表单的action标签中调用{% url "reset_password" %}时没有传递该参数,这直接触发了NoReverseMatch错误。

修复步骤:

  1. 修改视图,将激活码传入模板上下文
    在ResetPassword视图的get方法中,把active_code添加到context里:

    context={
        'reset_password_form' : reset_password_form,
        'title': 'Reset My Password',
        'active_code': active_code  # 新增此行
    }
    
  2. 更新模板的表单action
    在url标签中补充active_code参数:

    <form action="{% url "reset_password" active_code=active_code %}">
        {% csrf_token %}
        {{ reset_password_form.label_tag }}
        {{ reset_password_form }}
        {{ reset_password_form.errors }}
        <button type="submit" class="btn btn-default">Reset My Password</button>
    </form>
    

次要错误:视图中的判断逻辑有误

你当前代码里写的if User is None:是在判断User类是否为None,这永远不会成立,正确的应该是判断查询到的user实例是否为空:

# 原错误代码
if User is None:
# 修改后
if user is None:

额外优化建议

密码重置属于敏感操作,建议使用POST方法提交表单:

  1. 模板中添加method="post":
    <form action="{% url "reset_password" active_code=active_code %}" method="post">
    
  2. 为ResetPassword视图添加post方法处理表单提交逻辑:
    def post(self, request, active_code):
        user = User.objects.filter(email_active_code__iexact=active_code).first()
        if user is None:
            return redirect(reverse('login-page'))
        
        reset_password_form = ResetPasswordForm(request.POST)
        if reset_password_form.is_valid():
            new_password = reset_password_form.cleaned_data.get('new_password')
            user.set_password(new_password)
            user.email_active_code = ""  # 重置激活码防止重复使用
            user.save()
            return redirect(reverse('login-page'))
        
        context={
            'reset_password_form' : reset_password_form,
            'title': 'Reset My Password',
            'active_code': active_code
        }
        return render(request, 'account_module/reset_password.html', context)
    

内容的提问来源于stack exchange,提问作者A.L

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 07:27:47