【发布时间】:2011-05-10 14:25:50
【问题描述】:
无论我多么努力地尝试并阅读此处的所有问题,我都无法重定向到用户登录后所在的同一页面。我认为现在是时候向人们展示我的代码了,如果你能指出错误的话。谢谢。
我的登录网址(在 base.html 模板中): 这存在于每一页上。用户登录后注销的更改。我读到我必须传递一个参数,例如'next',如下所示:
<a href="/login/?next={{request.path}}">Login</a>
但是,
*{{request.path}} 始终为空。 *
登录视图:
def mylogin(request):
"""login view"""
try:
redirect_to = request.GET.get('next', '/')
except ValueError:
redirect_to = "/"
errors = ''
t = loader.get_template('login.html')
# check for POST data
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
# Redirect to a success page.
return HttpResponseRedirect(redirect_to)
else:
c = Context({
'errors':'disabled',
})
return HttpResponse("disabled")
else:
c = Context({
'errors':'incorrect',
})
return HttpResponse(t.render(c))
else:
c = Context({
'errors':None,
})
return HttpResponse(t.render(c))
登录表单,在 login.html 模板中
<form method="post" action="?next={{ redirect_to }}" >
<p><label for="username">Username</p>
<p></label><input type="text" name="username" value="" id="username" /></p>
<p><label for="password">Password</label></p>
<p><input type="password" name="password" value="" id="password" /></p>
<p><input type="submit" value="Login"></p>
</form>
【问题讨论】: