利用HTTP_REFERER,
注销页面这样写:
def logout_user(request):
# del request.session['id']=user_id
logout(request) return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/')) 登录操作: 登陆操作相对复杂,因为一般都有单独的登陆页面,如果登陆成功再取HTTP_REFERER就是登陆页面自己的url,而不是之前的那个页面。 可以利用django的session,在转入登陆的时候,用的是页面的get请求,这时候在session中记录HTTP_REFERER,用户输入用户名密码进行登陆的时候(Post请求),从session中取出即可: def login_user(request): if request.method == 'GET': #记住来源的url,如果没有则设置为首页('/') request.session['login_from'] = request.META.get('HTTP_REFERER', '/') #TODO:显示登陆页面,blablabla elif request.method == 'POST': #TODO: 用户登录操作,blablabla #重定向到来源的url return HttpResponseRedirect(request.session['login_from']) 最后的重定向,有时候需要用户感觉到被重定向回去了,就写个简单的页面告诉用户两秒以后跳转,然后改改相应的login代码就行: <p>两秒钟后转入如下链接,如果长时间没有响应请直接点击:</p > <p><a href="{{ refresh_url }}">{{ refresh_url }}</ a></p > <meta http-equiv="refresh" content="2;url={{ refresh_url }}">