if request.user.is_authenticated

来源:6-3 用户登录-2

慕少4732649

2019-02-26

6-2课程里,在index.html中,if request.user.is_authenticated这个判断好像一直为真,views里面login()函数登陆成功,也没用~

		<div  class=" header">
            {% if request.user.is_authenticated  %}
                <div class="top">
				<div class="wp">
					<div class="fl"><p>服务电话:<b>33333333</b></p></div>
					<!--登录后跳转-->
                        <!-- <a style="color:white" class="fr registerbtn" href="register.html">注册</a> -->
                        <!-- <a style="color:white" class="fr loginbtn" href="/login/">登录</a>  -->

						<div class="personal">
                            <dl class="user fr">
                                <dd>bobby<img class="down fr" src="/static/images/top_down.png"/></dd>
                                <dt><img width="20" height="20" src="/static/media/image/2016/12/default_big_14.png"/></dt>
                            </dl>
                            <div class="userdetail">
                            	<dl>
	                                <dt><img width="80" height="80" src="/static/media/image/2016/12/default_big_14.png"/></dt>
	                                <dd>
	                                    <h2>django</h2>
	                                    <p>bobby</p>
	                                </dd>
                                </dl>
                                <div class="btn">
	                                <a class="personcenter fl" href="usercenter-info.html">进入个人中心</a>
	                                <a class="fr" href="/logout/">退出</a>
                                </div>
                            </div>
                        </div>


				</div>
			</div>
                {% else %}
               <div class="top">
				<div class="wp">
					<div class="fl"><p>服务电话:<b>33333333</b></p></div>
					<!--登录后跳转-->

                        <a style="color:white" class="fr registerbtn" href="register.html">注册</a>
                        <a style="color:white" class="fr loginbtn" href="/login/">登录</a>

				</div>
			</div>
            {% endif %}

from django.contrib.auth import authenticate , login

def user_login(request):
    if request.method=='POST':
        username = request.POST.get('username','')
        password =  request.POST.get('password','')
        user = authenticate(username=username,password=password)    #函数判断usename/pw是否为真,否则返回None
        if user is not None:
            login(request,user)  #可以登陆(session和cokies)
            return render(request, 'index.html', {})
        else:
            return render(request,'login.html',{})
    elif request.method == 'GET':
        return render(request,"login.html",{})


写回答

1回答

Ethreal

2019-02-26

还是需要严谨一点,有就是有,没有就是没有 好像是什么个意思啊,你debug下 输入错误的密码是否走登录页面的逻辑,对比下源码确定此处无问题的话 强制刷新下浏览器缓存看看,有的时候也有可能是缓存没更新

0
0

Python3.6+django+xadmin,打造在线教育平台

【毕设】Python 2.7到3.6 完美适配,Django升级2.0

3677 学习 · 4038 问题

查看课程