Login_redirect_url不起作用。视图始终重定向到索引

罗希特(Rohit Bumrah):

这是我在settings.py中的登录重定向URL:

LOGIN_REDIRECT_URL='/category/all'

这是我的登录视图:

def login(request):

    if request.user.is_authenticated:
        return redirect('/')
    else:
        if request.method == "POST":
            email=request.POST['email']
            password=request.POST['password']
            user=auth.authenticate(email=email,password=password)

            if user is not None:
                auth.login(request, user)
                return redirect('/')
            else:
                messages.info(request,"Email Password didn't match")
                return redirect('login')
        else:
            return render(request,"login.html")

每当用户登录时,我都希望将他重定向到类别/所有页面,但始终将其重定向到index(“ /”),这可能是因为我使用的是return redirect(“ /”)。即使我已经登录,对于某些视图也是必需的,即使url类似于:

http://localhost:8000/login/?next=/cart/

而不是重定向我到购物车,它也重定向索引。请帮助我解决此问题,以便重定向正常工作。

威廉·范昂塞姆(Willem Van Onsem):

您构建了自己的登录视图,因此这意味着重定向机制将不起作用,因为LOGIN_REDIRECT_URL等等是Django auth模块LoginView[Django-doc]参数

您只需在视图中重定向即可:

def login(request):
    if request.user.is_authenticated:
        return redirect('/category/all')
    else:
        if request.method == 'POST':
            email=request.POST['email']
            password=request.POST['password']
            user=auth.authenticate(email=email,password=password)

            if user is not None:
                auth.login(request, user)
                # redirect to a view
                return redirect('/category/all')
            else:
                messages.info(request, "Email Password didn't match")
                return redirect('login')
        else:
            return render(request,'login.html')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章