登录后跳转原页面
def login_auth(func_name):
def inner(request, *args, **kwargs):
# print(request.path)
# print(request.path_info)
# 1.获取用户没有登录之前想要访问的网址地址
target_path = request.get_full_path()
if request.COOKIES.get('name'):
res = func_name(request, *args, **kwargs)
return res
else:
# 2.将用户想要访问的地址当做参数传给登录功能
return redirect(f'/login/?next={target_path}')
return inner
def login(request):
if request.method == 'POST':
name = request.POST.get("name")
if name == 'jason':
# 获取用户登录之前想要访问的地址
next_path = request.GET.get('next')
'''注意 用户也有可能直接访问的登录页面 没有想要访问的其他页面'''
if next_path:
res = redirect(next_path) # 跳转到之前想要访问的界面
else:
res = redirect('/home/') # 默认登录之后跳转的界面
res.set_cookie('name', 'jason')
return res
return render(request, 'login.html')