Пустой `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