Django中的django.contrib.auth.logout [英] django.contrib.auth.logout in Django

查看:129
本文介绍了Django中的django.contrib.auth.logout的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用Django的注销功能,但不知道如何正确使用它。我一直在提到这个Django用户认证:https://docs.djangoproject.com/en/dev/topics/auth/ ,它读取

 code从django.contrib.auth import logout 

def logout_view(request):
logout(request)
#重定向到成功页面。

我的困惑部分是#重定向到成功页面。我如何将其重定向到另一个页面。我应该使用HttpResponseRedirect还是添加额外的参数来注销(请求)。我不知道该怎么办..需要一些指导。

解决方案

查看注销方法的来源,它应该给你一个清楚的想法,发生了什么。您可以为注销方法添加额外的参数来处理重定向,但您也可以在自定义行为方法之后附加

  def logout (request,next_page = None,
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 ...
pre>

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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆