Проблема не с authenticate
, а с вашим созданием пользователя.
Значение, хранящееся в u.password
, должно быть хешированным значением пароля, а не самим необработанным паролем.
Вы можете использовать u.set_password('password')
, чтобы позаботиться о хешировании для вас:
>>> u = User(name='luis')
>>> u.set_password('password')
>>> u.save()
>>> authenticate(username='luis', password='password')
<User: luis>