我正在尝试构建一个简单的网站,其登录功能与此处非常相似。 用户应该能够以匿名用户的身份浏览网站,并且每个页面上都会有一个登录链接。当点击登录链接时,用户将被带到登录表单。成功登录后,用户应该被带回到他首先点击登录链接的页面。 我猜我必须以某种方式将当前页面的URL传递给处理登录表单的视图,但我无法真正实现它的工作。编号: 我想通了。我通过传递当前页面作为GET参数链接到登录表单,然后使用'next'重定向到该页面。谢谢!Django:登录后重定向到上一页
编辑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 }}">
所以是的,这是非常多的,希望能够说清楚。
我觉得Django登录的东西为你处理,它不适合你吗? – 2009-04-30 13:16:04