您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
django2.1后默认的认证后端(django.contrib.auth.backends.ModelBackend)
而这个类中的authenticate方法中有如下代码:
def authenticate(self, request, username=None, password=None, **kwargs):
.....
if user.check_password(password) and self.user_can_authenticate(user):
return user
而且user_can_authenticate函数如下:
def user_can_authenticate(self, user):
is_active = getattr(user, 'is_active', None)
return is_active or is_active is None
由此可知django2.1后也会对用户的is_active进行判断,如果is_active为false,则authticate也会返回None.
要解决以上问题,只要继承django.contrib.auth.backends.ModelBackend类重写authticate方法返回True即可,此出刚好有一个类实现了以上操作django.contrib.auth.backends.AllowAllUsersModelBackend.
在settings.py中重新指定后端处理类即可,如下:
AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.AllowAllUsersModelBackend']
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。