为了账号安全,请及时绑定邮箱和手机立即绑定

Django:登录后重定向到上一页

Django:登录后重定向到上一页

ABOUTYOU 2019-10-14 14:34:48
我正在尝试建立一个简单的网站,其登录功能与SO上的登录功能非常相似。用户应该能够以匿名用户的身份浏览站点,并且每个页面上都会有一个登录链接。当单击登录链接时,用户将被带到登录表单。成功登录后,应将用户带回到他首先单击登录链接的页面。我猜想我必须以某种方式将当前页面的url传递给处理登录表单的视图,但实际上无法使其正常工作。编辑:我想通了。我通过将当前页面作为GET参数传递来链接到登录表单,然后使用“下一个”重定向到该页面。谢谢!编辑2:我的解释似乎不清楚,所以这里要求的是我的代码:假设我们在页面foo.html上,并且尚未登录。现在我们想在foo.html上建立一个链接,该链接登录。我们可以在那里登录,然后将其重定向回foo.html。foo.html上的链接如下所示:      <a href='/login/?next={{ request.path }}'>Login</a> 现在,我编写了一个自定义登录视图,看起来像这样:def login_view(request):   redirect_to = request.REQUEST.get('next', '')   if request.method=='POST':      #create login form...      if valid login credentials have been entered:         return HttpResponseRedirect(redirect_to)     #...   return render_to_response('login.html', locals())还有login.html中的重要一行:<form method="post" action="./?next={{ redirect_to }}">是的,就这样,希望可以弄清楚。
查看完整描述

2 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

要支持带有参数/值的完整网址,您需要:


?next={{ request.get_full_path|urlencode }}

而不只是:


?next={{ request.path }}


查看完整回答
反对 回复 2019-10-14
  • 2 回答
  • 0 关注
  • 1151 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信