我正在使用Django来实现注册和登录,但是在这里遇到了一些问题。
我的环境是Python3.7.2,Django 2.1.5和Sqlite3。我正在localhost(127.0.0.1:8000)上进行测试。
我试图用默认功能User.objects.create_user()
创建一个用户,关键代码如下,其中userRegID,userRegPassword和userRegEmail是从前端获取的数据:
user = User.objects.create_user(username = userRegID, password = userRegPassword, email = userRegEmail)
user.first_name = userRegFirstName
user.last_name = userRegLastName
user.is_active = False
user.is_staff = False
user.is_superuser = False
user.save()
然后我在其他地方将user.is_active设置为true(因为我尝试使用电子邮件验证)
第一个问题是,在sqlite的auth_user表中找不到创建的用户数据,但是如果我以超级用户身份在管理站点上登录,则可以看到它。
另一个问题是注册后我尝试登录,auth.authenticate函数始终返回None。我已经确认该用户在管理站点上处于活动状态。而且我确定使用check_password确认密码正确。
答案 0 :(得分:0)
确保已在settings.py文件中将身份验证设置后端设置为:
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
)