正确使用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)