正确使用URL中的'next'参数,Django
Properly use 'next' paramater in URL, Django
Python/Django 这里是新手。
我在 3 个不同的视图中使用装饰器 @login_required(login_url='/login/')
。我有多个这样的视图(认为网站提供的服务)只有在您登录后才能访问。
当我点击服务按钮时,形成的URL是这样的:domain/login/?next=/<service_name>/
如何使用 ?next=<service_name>
重定向回最初调用的服务?目前我被送回主页,因为那是我的登录视图所做的。
在您的登录视图中,只需执行以下操作:
def login(request):
"""
Check for login and store the result in login_successful
"""
path = request.GET.get("next")
if login_successful:
if path:
return HttpResponseRedirect(path)
else:
return HttpResponseRedirect(your_earlier_path)
Python/Django 这里是新手。
我在 3 个不同的视图中使用装饰器 @login_required(login_url='/login/')
。我有多个这样的视图(认为网站提供的服务)只有在您登录后才能访问。
当我点击服务按钮时,形成的URL是这样的:domain/login/?next=/<service_name>/
如何使用 ?next=<service_name>
重定向回最初调用的服务?目前我被送回主页,因为那是我的登录视图所做的。
在您的登录视图中,只需执行以下操作:
def login(request):
"""
Check for login and store the result in login_successful
"""
path = request.GET.get("next")
if login_successful:
if path:
return HttpResponseRedirect(path)
else:
return HttpResponseRedirect(your_earlier_path)