request.user не заполняется моим django auth backend
Я написал класс авторизации авторизации, который реализует authenticate
метод и get_user
метод согласно документам Django. я добавил
AUTHENTICATION_BACKENDS = ('src.lib.auth_backend.MyBackend',)
в мой файл settings.py. С помощью операторов печати я вижу, что мой код выполняется и что он возвращает объект пользователя класса, который я определил с помощью AUTH_USER_MODEL
в моих settings.py.
К тому времени, когда я получу объект запроса в моей django-rest-framework has_object_permsion
функция, request.user
всегда установлен на AnonymousUser
,
Я пропускаю шаг? Я пробовал это с и без django.contrib.auth.middleware.AuthenticationMiddleware
установлен и получить тот же результат.
Этот сбой происходит в следующем модульном тесте
def test_get_user(self):
client = APIClient() # rest_framework.test.APIClient
client.login(username='user1',password='user1Password')
res = client.get('/websvc/users/' + str(user.user_id) + '/') # request.user will be AnonymousUser
self.assertEqual(res.status_code, 200) # it will be 403, which is appropriate for AnonymousUser
1 ответ
Несколько вещей могут быть неправильными.
Вы создали пользователя до запуска теста?
Что возвращает client.login
?
Покажите нам весь тест, чтобы сказать вам, что не так.