Пустой `request.user.username` при обработке созданного GET-запроса

Я пробовал регистрировать все URL, к которым обращался пользователь, вместе с идентификатором пользователя и датой и временем, когда он был доступен, используя промежуточное ПО django, как объяснено здесь .

Для некоторых URL не регистрируется идентификатор пользователя. Я проверил и обнаружил, что request.user.username был пустой строкой. Я проверил представления, соответствующие этим URL, и обнаружил, что у этих представлений нет нужных декораторов. Например, я изменил следующее:

def getXyz_forListView(request):
    # view body ...

на это:

@api_view(['GET'])
@authentication_classes([TokenAuthentication,])
def getXyz_forListView(request):
    # view body ...

и он начал работать.

Однако некоторые представления создаются из классов:

class XyzView(View):  
    
    def get(self, request):
        # view body ...

Я добавил те же декораторы:

class XyzView(View):  
    
    @api_view(['GET'])
    @authentication_classes([TokenAuthentication,])
    def get(self, request):
        # view body ...

Но он все еще не работает. Что я упускаю?

PS:

Он добавляется к urls.py следующим образом:

urlpatterns = [
    # ...
    url(r'^xyz/', XyzView.as_view(), name="xyz"),
]

Думаю, вам следует попробовать наследоваться от класса APIView:

from rest_framework.views import APIView
Вернуться на верх