错误
使用authenticate检测用户登录,用户名、密码都正确,但是没有激活,他的返回值一直是None,使得用户未激活用户一直显示用户名密码错误
django3.0.4中authenticate介绍
authenticate默认会检测用户的用户名、密码以及激活的状态(is_active属性)
解决方法
- 在django的setting中添加一下语句:
AUTHENTICATION_BACKENDS = [‘django.contrib.auth.backends.AllowAllUsersModelBackend’]
注:这种方法的不足是:之前注册过的用户,如果未激活的话还是显示用户名和密码错误,只适合新注册的用户, 最后要自己检测用户是否激活 - 重写authenticate方法
使用过程中的代码
-
注册使用的视图代码
from user.models import User user = User.objects.