Django logout_then_login与下一个参数

时间:2015-03-13 14:59:04

标签: python django

在某些情况下,我想注销用户,使用next param将其重定向到登录页面,因此当用户成功登录时,Django应该将用户重定向到某个页面。

我找到了logout_then_login()方法,但看起来它在登录页面参数后不支持。我试图在extra_content param中传递'next'param,但它不起作用。

我该怎么做?也许还有一些其他django方法可以做到这一点? 一般来说,我只想强制注销,让用户重新登录并将其重定向到logget out的页面。

1 个答案:

答案 0 :(得分:1)

From the docs(向下滚动此方法)

logout_then_login(request [,login_url,current_app,extra_context])

将用户注销,然后重定向到登录页面。

网址名称:未提供默认网址

可选参数:

  • login_url:要重定向到的登录页面的URL。如果未提供,则默认为settings.LOGIN_URL。
  • current_app:一个提示,指示哪个应用程序包含当前视图。有关详细信息,请参阅命名空间的URL解析策略。
  • extra_context:将添加到传递给模板的默认上下文数据的上下文数据字典。

Here we can see that the login method will accept a next parameter as a get variable.

在login_url旁边添加应该做你想做的事:

from django.conf import settings
...
def myView(request):
    login_url = "%s?next=%s" % (settings.LOGIN_URL, request.path)
    logout_then_login(request, login_url=login_url)