Aoeso 2022-10-02 20:50 采纳率: 21.1%
浏览 44
已结题

Django 登录验证成功后,不会重定向原因查找?



```python
def mylogin(request):
    form = LoginForm()

    if request.method == 'POST':
        print(request.POST)
        res = {'user': None, 'msg': None}
        username = request.POST.get('user')
        password = request.POST.get('pwd')
        valid_code = request.POST.get('valid_code')
        valid_code_str = request.session.get('valid_code_str')
        if valid_code.upper() == valid_code_str.upper():
            # 判断用户名密码是否正确
            user = authenticate(username=username, password=password)
            if user is not None:
                # login(request, user)  # 这样写以后访问其他页面自带session验证信息

                return redirect('/head/')
            else:
                pwd_errors = '密码错误!'
                print(pwd_errors)
                return render(request, 'login.html', locals())
        else:
            res['msg'] = '验证码校验失败'

            return JsonResponse(res)
    else:
        return render(request, 'login.html', locals())


路由配置:
```python
urlpatterns = [
    path(r'', views.index, name='index'),
    path(r'head/', views.head, name='head'),
    path(r'mylogin/', views.mylogin, name='mylogin'),

请教下:
if user is not None:
login(request, user)
return redirect('/head/')
这个位置的重定向没有反映;但是有一条200响应 [02/Oct/2022 20:43:02] "GET /head/ HTTP/1.1" 200 19505

如果 将最下方的
else:
return render(request, 'login.html', locals())
这个换成return redirect('/head/') 就可以正常重定向

请教下怎么解决无响应的问题?

  • 写回答

2条回答 默认 最新

  • 爱音斯坦牛 全栈领域优质创作者 2022-10-03 00:49
    关注

    你有没有写中间件检查登录状态,可能你写了一个中间件检查登录状态,没有排除这个登录时的链接,导致你重定向到head页面时判断无cookie而又重定向到登录页…

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月9日
  • 创建了问题 10月2日

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?