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

Django登录页面验证后不跳转且无法获取账号密码问题求助

Django登录表单提交无响应、无法获取POST参数的解决方法

问题根源及修复步骤:

  • 表单提交目标错误
    你的login.html中表单的action="/"会把请求发送到首页视图,但首页视图index会检查用户是否登录,未登录状态下直接重定向回登录页,导致处理登录逻辑的loginuser视图根本接收不到POST请求,所以终端没有打印参数。
    修正表单的提交地址,改为指向登录视图:

    <form class="container my-5" action="{% url 'login' %}" method="post">
    

    或者直接写硬路径/login,推荐用{% url 'login' %},后续修改URL配置时无需改动模板。

  • 视图函数缩进错误
    views.py里的loginuser函数存在缩进问题,最后一行return render(request,'login.html')的缩进层级错误,Python对缩进严格,这会导致代码逻辑异常。修正后的完整函数:

    def loginuser(request):
        if request.method == "POST":
            username = request.POST.get('username')
            password = request.POST.get('password')
            print(username, password)
            user = authenticate(username=username, password=password)
            if user is not None:
                login(request, user)
                return redirect("/")
            else:
                return render(request, 'login.html')
        # 处理GET请求
        return render(request, 'login.html')
    

验证操作:

  1. 保存所有修改的文件
  2. 重启Django开发服务器
  3. 访问登录页面,输入正确的用户账号密码提交,此时终端会打印出用户名和密码,且成功跳转到首页。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 22:57:29