我正试图建立一个简单的网站登录功能非常类似于这里,所以. 用户应该能够以匿名用户的身份浏览网站,每个页面上都会有一个登录链接.单击登录链接时,用户将被带到登录表单.成功登录后,应该将用户带回他最初单击登录链接的页面. 我猜我必须以某种方式将当前页面的url传递给处理登录表单的视图,但是我不能让它真正工作.
编辑: 我想通了.我通过将当前页面作为GET参数传递来链接到登录表单,然后使用‘Next’重定向到该页面.谢谢!
编辑2: 我的解释似乎不清楚,因此按照要求,下面是我的代码: 假设我们在一个页面foo.html上,并且我们没有登录.现在,我们希望在foo.html上有一个链接到login.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 }}">
所以是的,差不多就是这样,希望这能说明问题.