对于一个网站来说,比较好的用户体验是登录、注册和注销后跳转回用户之前访问的页面。
在登录和注销的视图函数中,Django 已经为我们处理了跳转回用户之前访问页面的流程。
其实现的原理是,在登录和注销的流程中,始终传递一个 next 参数记录用户之前访问页面的 URL。
我们需要做的就是在用户访问登录或者注销的页面时,在 URL 中传递一个 next 参数给视图函数,具体做法如下:
<li class="cl-effect-11"><a href="{% url 'logout' %}" data-hover="退出">退出</a></li> {% else %} <li class="cl-effect-11"><a href="{% url 'login' %}" data-hover="登陆">登陆</a></li> <li class="cl-effect-11"><a href="{% url 'users:register' %}?next={ { request.path }}" data-hover="注册">注册</a></li> {% endif %}
可以看到,我们在登录和注销的 URL 后加了 next 参数,其值为 { { request.path }}。request