django-authenticate,默认检测用户名,密码以及激活状态

今日做django内部认证系统遇到一个错误;
贴上代码如下:
class LoginView(View):
    def get(self,request):
            return render(request,'login.html')
    def post(self,request):
        # 接受数据
        username = request.POST.get('username')
        password = request.POST.get('pwd')
        # 合法性
        if not all([username,password]):
            return render(request,'login.html',{'errmsg':'请输入用户名和密码'})
        #user = User.objects.get(username = username,password = password)
        user = authenticate(username=username,password=password)
        if user is not None:
            if user.is_active:
                # 记录登陆状态
                login(request,user)   # session
                return redirect(reverse('goods:index'))
            else:
                return render(request,'login.html',{'errmsg':'请查看邮箱激活您的账户'})
        else:
            return render(request,'login.html',{'errmsg':'用户名或密码错误'})

#业务逻辑错误:注册后用户名以及密码,在未激活时,user #=authenticate(username=username,password=password)值为None;
#解决方法:在settings中加入中间件
# 不会检测用户的活跃状态
#AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.AllowAllUsersModelBackend']
#否则,is_active为0,用户认证失败;

你可能感兴趣的:(django-authenticate,默认检测用户名,密码以及激活状态)