Метод аутентификации Django возвращает 'Нет' для уже сохраненного пользователя - PullRequest
0 голосов
/ 23 марта 2020

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 is всегда возвращался как None

Я пробовал множество советов из других постов здесь на SO, но аутентификация по-прежнему возвращает None для пользователя, для которого is_active Я явно установил True и с ModelBackend добавлено в мой settings.py.

1 Ответ

1 голос
/ 23 марта 2020

Вы должны использовать create_user для создания пользователя, сохранение объекта User напрямую не будет шифровать пароль, поэтому никогда не будет аутентифицироваться

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