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

Django登录后未按LOGIN_REDIRECT_URL跳转首页问题求助

问题根因

你的路由、settings重定向配置本身没有错误,登录后不跳转的核心原因出在登录模板的表单写法上,两个错误导致表单根本没有触发正常的POST登录认证流程:

  • {% csrf_token %}标签、表单错误渲染代码全部写在了<form>标签外部,Django无法正常完成表单校验、字段取值逻辑
  • <form>标签属性写法完全错误:当前代码写的是<form class="p-4 border rounded", submit= 'POST'>,表单提交方法的正确属性是method="POST",你错写了不存在的submit属性,会导致表单默认以GET方式提交请求,根本不会触发LoginView的认证处理逻辑,自然不会执行重定向,也不会返回表单校验错误。
修复方案

调整login.html的模板结构,修正表单属性,核心修改点如下:

  1. 将CSRF标签、表单错误输出代码全部移动到<form>标签内部
  2. 修正form标签的属性,删除错误的submit='POST'写法,添加标准的method="POST"属性,去掉属性间多余的逗号

修正后的核心模板代码:

<section class="site-section">
        <div class="container">
          <div class="row">
            <div class="col-lg-6">
              <h2 class="mb-4">Log In To JobBoard</h2>
              <!-- 修正form标签属性 -->
              <form class="p-4 border rounded" method="POST">
                <!-- 表单校验、CSRF标签移入form内部 -->
                {% csrf_token %}
                {{ form.non_field_errors }}
                <!-- DEBUG -->
                {% for field in form %}
                    {% if field.errors %}{{ field.html_name }}: {{ field.errors }}{% endif %}
                {% endfor %}

                <div class="row form-group">
                  <div class="col-md-12 mb-3 mb-md-0">
                    <label class="text-black" for="fname">Username</label>
                    {{ form.username }}
                  </div>
                </div>
                <div class="row form-group mb-4">
                  <div class="col-md-12 mb-3 mb-md-0">
                    <label class="text-black" for="fname">Password</label>
                    {{ form.password }}
                  </div>
                </div>

                <div class="row form-group">
                  <div class="col-md-12">
                    <input type="submit" value="Log In" class="btn px-4 btn-primary text-white">
                  </div>
                </div>

              </form>
            </div>
          </div>
        </div>
      </section>
验证说明

修改完成后重启Django开发服务器,使用正常可登录的账号凭据提交表单,LoginView会正常完成身份认证,按照LOGIN_REDIRECT_URL的配置跳转到home_page对应的首页路径。如果输入的账号密码有误,你预置的错误输出代码也会正常在表单区域渲染报错信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 02:45:48