简体   繁体   English

Django-成功登录后将用户重定向到“ next”参数

[英]Django - Redirect user to “next” parameter after successful login

In my code, I am currently using the @login_required decorator. 在我的代码中,我当前正在使用@login_required装饰器。 As far as I know (and can see in the URL), this passes to my login view a next parameter holding the original page the user was on. 据我所知(并可以在URL中看到),这将下一个参数保存到我的登录视图,该参数保存了用户所在的原始页面。 After checking the user's credentials, I'm trying to redirect him to the original page, but I can't figure out how to do it. 在检查了用户的凭据之后,我试图将他重定向到原始页面,但是我不知道如何做。 I'm sure this must be really straightforward, but I've been stuck on it for quite some time and I had to ask for help before throwing away my keyboard. 我敢肯定这确实很简单,但是我已经坚持了很长时间,在扔掉键盘之前我不得不寻求帮助。 My view code is as follows: 我的查看代码如下:

from django.contrib.auth import login as auth_login, authenticate

def login(request):
form_class = LoginForm

if request.method == 'POST':
    form = form_class(data=request.POST)
    if form.is_valid():
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(request, username=username, password=password)
        if user is not None:
            auth_login(request, user)
            return redirect(?????????)
        else:
            #Error message
return render(request, 'login.html', {'form':form_class})

after you check for successful login, you just need to do something like: 检查成功登录后,您只需要执行以下操作:

next_url = request.GET.get('next')
if next_url:
    return HttpResponseRedirect(next_url)
else:
    return render(request, 'main/main.html')

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM