输入账号密码,但是登陆页面没有跳转到主页,进入主页显示登陆成功

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

qq_鱼_59

2018-04-05

发现用用户名登陆可以跳转主页面,只有在用邮箱登陆的时候不会跳转进主页面,但是打开主页显示是登陆状态。


class CustomBackend(ModelBackend):
   def authenticate(self, request, username=None, password=None, **kwargs):
       try:
           user = UserProfile.objects.get(Q(username=username)|Q(email=username))
           if user.check_password(password):
               return user
       except Exception as e:
           return None

class LoginView(View):
   def get(self, request):
       return render(request, 'login.html', {})
   def post(self, request):
       login_form = LoginForm(request.POST)
       # 判断是否合法
       if login_form.is_valid():
           user_name = request.POST.get('username', '')
           pass_word = request.POST.get('password', '')
           user = authenticate(username=user_name, password=pass_word)
           if user is not None:
               if user.is_active:
                   login(request, user)
                   return render(request, 'index.html')
               else:
                   return render(request, 'login.html', {'msg': '用户未激活!'})
           else:
               return render(request, 'login.html',{'msg': '用户名或密码错误!'})
       else:
           return render(request, 'login.html', { 'login_form':login_form})

============================================================

<h2>帐号登录</h2>
               <form action="{% url 'login' %}" method="post" id="jsLoginForm" autocomplete="off">
                   <div class="form-group marb20 {% if login_form.errors.username %} errorput {% endif %}">
                       <label>用&nbsp;户&nbsp;名</label>
                       <input name="username" id="account_l" type="text" placeholder="手机号/邮箱" />
                   </div>
                   <div class="form-group marb8 {% if login_form.errors.password %} errorput {% endif %}">
                       <label>密&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;码</label>
                       <input name="password" id="password_l" type="password" placeholder="请输入您的密码" />
                   </div>
                   <div class="error btns login-form-tips" id="jsLoginTips">{% for key,error in login_form.errors.items %}{{ error }}{% endfor %}{{ msg }}</div>
                    <div class="auto-box marb38">
                       <label><input type="checkbox" id="jsAutoLogin"> 自动登录</label>
                       <a class="fr" href="{% url 'forget_pwd' %}">忘记密码?</a>
                    </div>
                    <input class="btn btn-green" id="jsLoginBtn" type="submit" value="立即登录 > " />
                   {% csrf_token %}
               </form>

==========================================================

返回结果》》》》》》》》》》》

[05/Apr/2018 12:46:36] "POST /user/login/ HTTP/1.1" 200 37041

==========================================================


写回答

2回答

qq_鱼_59

提问者

2018-04-08

0.0

0
0

bobby

2018-04-07

你通过qq群找到我 给我发个qq消息我看看呢

0
2
bobby
回复
qq_鱼_59
442421039
2018-04-09
共2条回复

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

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

3677 学习 · 4041 问题

查看课程