在实际Python web开发过程中,我们经常会碰到这样的应用场景。当用户试图访问某个页面或评论某个页面时,我们会要求其先登录,然后在用户在登录后自动跳转到用户试图访问的页面。小编我今天就来总结下Django中如何实现用户登录后跳转回前一页的几种方法,希望对大家有所帮助。
方法一: 静态模板中手动添加next参数实现跳转
假如我们负责管理用户注册登录的app叫myaccount, 其包括下面4个urls。我们要稍后用到它们。
from django.urls import re_path
from . import views
app_name = 'myaccount'
urlpatterns = [
re_path(r'^account/register/$', views.register, name='account_register'),
re_path(r'^account/login/$', views.login, name='account_login'),
re_path(r'^user/(?P<pk>\d+)/profile/$', views.profile, name='profile'),
re_path(r'^logout/$', views.logout, name='account_logout'),
]
这时静态模板中我们可以手动添加next参数,指向跳转页面链接。比如下例代码中,用户登录后会自动跳转到添加文章页面(blog:article_create)。
{% if request.user.is_authenticated %}
<p> <a href="{% url 'blog:article_create' %}">添加文章</a></p>
{% else %}
<p>请<a href="{%