Django 的 authenticate 方法 returns 'None' 用于已保存的用户
Django's authenticate method returns 'None' for a an already saved User
Settings.py
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
)
Tests.py 有触发错误的代码
class LoginTest(TestCase):
def test_can_redirect_to_user_page_if_authentificated(self):
test_user = User(username='foo', password='bar', first_name='Testy', last_name='McTestingTon', email='testy@email.com', is_active=True)
test_user.save()
current_user = authenticate(username=test_user.username, password=test_user.password)
print(current_user)
response = self.client.post('/login', data = {'username' : current_user.username, 'password' : current.password})
self.assertEqual(response.url, '/users/Testy')
current_user
始终返回为 None
我已经在 SO 上尝试了其他帖子的大量建议,但仍然 returns None 为我已明确设置为 True
的 is_active
用户进行身份验证并将 ModelBackend
添加到我的 settings.py
.
您应该使用 create_user
创建用户,直接保存 User
对象不会加密密码,因此永远不会进行身份验证
test_user = User.objects.create_user(...)
Settings.py
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
)
Tests.py 有触发错误的代码
class LoginTest(TestCase):
def test_can_redirect_to_user_page_if_authentificated(self):
test_user = User(username='foo', password='bar', first_name='Testy', last_name='McTestingTon', email='testy@email.com', is_active=True)
test_user.save()
current_user = authenticate(username=test_user.username, password=test_user.password)
print(current_user)
response = self.client.post('/login', data = {'username' : current_user.username, 'password' : current.password})
self.assertEqual(response.url, '/users/Testy')
current_user
始终返回为 None
我已经在 SO 上尝试了其他帖子的大量建议,但仍然 returns None 为我已明确设置为 True
的 is_active
用户进行身份验证并将 ModelBackend
添加到我的 settings.py
.
您应该使用 create_user
创建用户,直接保存 User
对象不会加密密码,因此永远不会进行身份验证
test_user = User.objects.create_user(...)