Dav*_*ass 11 authentication django nonetype
我有以下代码片段:
user = User(username='h@h.com',email='h@h.com')
user.set_password('pass')
user.save()
u = authenticate(username='h@h.com', password='pass') #this always returns None!!!
Run Code Online (Sandbox Code Playgroud)
问题是,你总是没有.我已经在其他堆栈溢出帖子上跟踪了代码示例,并将其缩小到上面的行.
关于可能发生的事情的任何想法?
在你的设置中放置这样的东西
#Authentication backends
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
)
Run Code Online (Sandbox Code Playgroud)
或者如果您使用userena作为您的帐户
#Authentication backends
AUTHENTICATION_BACKENDS = (
'userena.backends.UserenaAuthenticationBackend',
'guardian.backends.ObjectPermissionBackend',
'django.contrib.auth.backends.ModelBackend',
)
Run Code Online (Sandbox Code Playgroud)
有趣的是, check_password 在以下情况下返回 True:
eml = "4@a.com"
pw = "pass"
uname = 'w2'
user = User.objects.create_user(uname,eml,pw)
user.save()
log.debug("Password check passes?")
log.debug(user.check_password(pw)) # Logs True!!!
user = authenticate(username=uname, password=pw)
Run Code Online (Sandbox Code Playgroud)