python - 请教一下关于 Django 的重定向失败

查看:150
本文介绍了python - 请教一下关于 Django 的重定向失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

不知道为什么,我使用了 HttpResponseRedirect 来进行重定向.比如登陆的这个情况是,我点击登陆了后台已经获取了 posts 页面,但是界面还是登陆页。不知道是什么情况造成的?

urls.py

    url(r'^login/$',login_views, name='login'),
    url(r'^logout/$',logout_views, name='logout'),
    url(r'^register/$', register, name='register'),
    url(r'^posts/$',Post_index, name='posts'),

views.py

def login_views(request):
    if request.method == 'POST':
        username = request.POST['username']
        password = request.POST['password']
        user_status =authenticate(username=username, password=password)
        if user_status:
            login(request,user_status)
            return HttpResponseRedirect("/admin/posts")
        else:
            if User.objects.filter(username=username):
                messages.error(request,"eror")
                return HttpResponseRedirect("/admin")
                #return JsonResponse({'status':'error', 'message':'密码错误'})
            else:
                return JsonResponse({'status':'error','message':'用户不存在'})
    return render(request, "login.html")

执行情况:

解决方案

ajax 请求返回 302 是不会跳转的,你要 在 js 用 location.href 手动跳转

这篇关于python - 请教一下关于 Django 的重定向失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆