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 为我已明确设置为 Trueis_active 用户进行身份验证并将 ModelBackend 添加到我的 settings.py.

您应该使用 create_user 创建用户,直接保存 User 对象不会加密密码,因此永远不会进行身份验证

test_user = User.objects.create_user(...)