django登陆/注册跳转回原来的页面

版权声明:版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/abc666666_6/article/details/86010133

模版中

在模版中将登陆/注册的跳转链接后添加查询字符串,将当前页面的路径一起发送过去

	<a href="{% url 'user_login' %}?from={{ request.get_full_path }}">

对应的视图函数中

将获得的查询字符串拼接到根url路径就可以了

def user_login(request):
    if request.method == "POST":
        login_form = LoginForm(request.POST)
        if login_form.is_valid():
            user = login_form.cleaned_data.get("user")  # 到了这里,那么肯定在LoginForm中authenticated成功
            login(request, user)
            
            # 特别注意这里,会将查询字符串拼接到反转home的路径上(这里home是根路径)
            return redirect(request.GET.get("from", reverse("home")))
    else:
        login_form = LoginForm()

    context = {}
    context["login_form"] = login_form
    return render(request, "login.html", context=context)

猜你喜欢

转载自blog.csdn.net/abc666666_6/article/details/86010133