我正在尝试构建一个简单的网站,其登录功能与SO上的功能非常相似。用户应该能够以匿名用户身份浏览网站,并且每个页面都会有一个登录链接。 单击登录链接时,用户将被带到登录表单。 成功登录后,用户应该返回到他首先点击登录链接的页面。我猜我必须以某种方式将当前页面的url传递给处理登录表单的视图,但我无法让它真正起作用。
编辑:我想到了。 我通过将当前页面作为GET参数传递,然后使用“next”重定向到该页面来链接到登录表单。 谢谢!
编辑2:我的解释似乎并不清楚,因此这里要求的是我的代码:让我们说我们在页面foo.html上,我们没有登录。现在我们希望在foo.html上有一个链接到login.html的链接。 我们可以登录,然后重定向回foo.html。foo.html上的链接如下所示:
现在我写了一个看起来像这样的自定义登录视图:
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中的重要一行:
所以,这就是它,希望能说清楚。