今天遇到了这样的一个错误, django不管怎样后台总数账号密码错误
重新创建用户也一样
原因如下:
我修改了authenticate方法, 这里多余的定义了is_staff=None,比较之后
if user.is_staff == is_staff: 返回了None, 所以不管怎样都是账号密码错误
class EmailCheckModelBackend(ModelBackend):
"""
重新定义authenticate方法
"""
def authenticate(self, username=None, password=None, is_staff=None):
try:
user = models.User.objects.get(Q(email=username)| Q(username=username))
if user.check_password(password):
if is_staff is not None:
if user.is_staff == is_staff:
return user
else:
return None
return user
except models.User.DoesNotExist:
return None