Django - 成功登录后将用户重定向到 "next" 参数
Django - Redirect user to "next" parameter after successful login
在我的代码中,我目前正在使用@login_required 装饰器。据我所知(并且可以在 URL 中看到),这会将下一个参数传递到我的登录视图,该参数包含用户所在的原始页面。
检查用户的凭据后,我试图将他重定向到原始页面,但我不知道该怎么做。我敢肯定这一定非常简单,但我已经坚持了很长一段时间,在扔掉键盘之前我不得不寻求帮助。
我的查看代码如下:
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})
检查是否成功登录后,您只需执行以下操作:
next_url = request.GET.get('next')
if next_url:
return HttpResponseRedirect(next_url)
else:
return render(request, 'main/main.html')
在我的代码中,我目前正在使用@login_required 装饰器。据我所知(并且可以在 URL 中看到),这会将下一个参数传递到我的登录视图,该参数包含用户所在的原始页面。 检查用户的凭据后,我试图将他重定向到原始页面,但我不知道该怎么做。我敢肯定这一定非常简单,但我已经坚持了很长一段时间,在扔掉键盘之前我不得不寻求帮助。 我的查看代码如下:
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})
检查是否成功登录后,您只需执行以下操作:
next_url = request.GET.get('next')
if next_url:
return HttpResponseRedirect(next_url)
else:
return render(request, 'main/main.html')