Django中的django.contrib.auth.logout [英] django.contrib.auth.logout in Django
问题描述
code从django.contrib.auth import logout
def logout_view(request):
logout(request)
#重定向到成功页面。
我的困惑部分是#重定向到成功页面。我如何将其重定向到另一个页面。我应该使用HttpResponseRedirect还是添加额外的参数来注销(请求)。我不知道该怎么办..需要一些指导。
查看注销方法的来源,它应该给你一个清楚的想法,发生了什么。您可以为注销方法添加额外的参数来处理重定向,但您也可以在自定义行为方法之后附加
def logout (request,next_page = None,
pre>
template_name ='registration / logged_out.html',
redirect_field_name = REDIRECT_FIELD_NAME,
current_app = None,extra_context = None)
$
auth_logout(request)
redirect_to = request.REQUEST.get(redirect_field_name,'')
注销用户并显示您已注销消息
auth_logout b $ b如果redirect_to:
netloc = urlparse.urlparse(redirect_to)[1]
#安全检查 - 不允许重定向到不同的主机。
如果没有(netloc和netloc!= request.get_host()):
返回HttpResponseRedirect(redirect_to)
#etc ...
I would like to use the logout function from Django but not sure how to use it properly.I have been referring to this Django User Authenication: https://docs.djangoproject.com/en/dev/topics/auth/ and it reads
from django.contrib.auth import logout def logout_view(request): logout(request) # Redirect to a success page.
The confusing part for me is the # Redirect to a success page. How do i redirect it to another page. Should I use HttpResponseRedirect or add additional arguments to logout(request). I am not sure what to do.. Need some guidance.
解决方案Look at the source of the logout method, it should give you a clear idea what's going on. You can add extra arguments to the logout method to handle redirecting, but you can also append after the method for custom behaviour
def logout(request, next_page=None, template_name='registration/logged_out.html', redirect_field_name=REDIRECT_FIELD_NAME, current_app=None, extra_context=None): """ Logs out the user and displays 'You are logged out' message. """ auth_logout(request) redirect_to = request.REQUEST.get(redirect_field_name, '') if redirect_to: netloc = urlparse.urlparse(redirect_to)[1] # Security check -- don't allow redirection to a different host. if not (netloc and netloc != request.get_host()): return HttpResponseRedirect(redirect_to) #etc...
这篇关于Django中的django.contrib.auth.logout的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!