Django 锁定注销

Django lockdown logout

我正在尝试注销我的锁定会话。在文档中它说

LOCKDOWN_LOGOUT_KEY

A key which, if provided in the query string of a locked URL, will log out the user from the preview.

不知道我理解的对不对。我试着这样实现:

  1. 我在中间件列表中有锁定中间件。
  2. 我在 settings.py 中有这些锁定选项:

LOCKDOWN_FORM = 'lockdown.forms.AuthForm'
LOCKDOWN_AUTHFORM_STAFF_ONLY = False
LOCKDOWN_LOGOUT_KEY = 'logout'

  1. 我有一个按钮 link 到“/logout/”

<form action="/logout/">
  <input type="submit" value="Logout"/>
</form>

  1. 这只是 links 到 HttpResponseRedirect() 回到我的主页:

urls.py:

path('logout/', views.logout, name='logout')

views.py:

def logout(request):
 return HttpResponseRedirect("/")

link 正常运行并带我回到我的主页。 但是注销不会发生。 有人知道怎么做吗?

编辑: 我找到了解决办法。 我在 views.py:

的注销函数中添加了一行代码

def logout(request):
  request.session.flush()
  return HttpResponseRedirect("/")

我找到了解决办法。 我在 views.py:

的注销函数中添加了一行代码

def logout(request):
  request.session.flush()
  return HttpResponseRedirect("/")

只需添加 LOCKDOWN_LOGOUT_KEY 的值(默认为 "preview-logout")作为查询字符串参数。

<a href="/?preview-logout">Log out</a>