【发布时间】:2017-04-23 13:47:41
【问题描述】:
所以我创建了一个带有登录表单的 Django 应用程序,并在我的view.py 中使用 login(request, user) 来登录用户。这是主页,位置为mypage.com。我还在我的view.py 中创建了另一个名为log_out 的函数:
def log_out(request):
logout(request)
return redirect('/')
此功能用于使用 url 注销用户:mysite.com/logout 定义在我的url.py:
url(r'^logout/', views.log_out, name='log_out'),
这正在注销用户,但是当我在浏览器的地址字段中输入注销 url 时,用户正在注销,然后再按回车键转到该端点。
我希望它在输入 url 时不要注销用户,并等到我“进入”网站。
谁能帮我解决这个问题?
【问题讨论】:
-
除非您实际访问了
logoutURL,否则您的站点无法将您注销。您确定要退出“在您输入 URL 时...在按 Enter 之前”? -
是的,我确定。当我在浏览器中输入网址时,我的服务器在我按下回车按钮之前就回复了
"GET /logout/ HTTP/1.1" 302 0 -
我猜
302是某种found the url-消息。有没有办法说像if request.GET.statuscode == 301: DO-MY-CODE。如果我没记错的话,响应码 301 是您实际访问了该网站吗? -
在您输入 URL 时,您是否看到您的浏览器在浏览器的网络日志中发出请求?另外,你用的是什么浏览器?
-
您应该使用 POST 来避免预取浏览器行为。看一看:stackoverflow.com/a/14587231