Запрос Get с помощью django возвращает None для пользователя

Я пытаюсь получить данные о пользователе, который выполняет запрос get в django. Я использую postman для выполнения get запроса, но когда я пытаюсь вывести request.user и type(request.user):

#In the view
class SomeView(APIView):
    ....
    ....
    def get(self, request, pk, format=None):
        print(f'request: {request.user}, {type(request.user)')

Я получаю None и None для user и type.

Я просмотрел много постов на stackoverflow, но мне трудно найти причину.

From:

  1. Django username is empty in a GET request
  2. https://www.django-rest-framework.org/api-guide/authentication/

Я подумал, что, возможно, я не выполняю запрос get с пользователем, но если это так, то я должен получить объект Anonymous в качестве типа для пользователя, верно? Но вместо этого он говорит мне, что это None

Я должен упомянуть, что из postman я нахожусь на вкладке Authorization, я пробовал использовать Bearer Token, который я знаю, что у меня есть правильный токен, а также (отдельно) использовать basic auth, имея имя пользователя и пароль. Любой из этих методов приводит к тому, что request.user становится None.

Если я просто выведу request, то получу:

<rest_framework.request.Request: GET '/test/number/33574677/'>,

Я не уверен, в чем здесь проблема, может быть, это как-то связано с тем, как я использую postman для отправки запроса? Или, возможно, я упускаю что-то очень тривиальное? Спасибо.

Вернуться на верх