Self.request.user не возвращается в набор запросов

В моих представлениях queryset возвращает всех пользователей, когда я хочу, чтобы он возвращал только пользователя, который в настоящее время зарегистрирован. У меня есть метод get self, у которого сериализатор установлен на пользователя, но он не используется. Когда я попробовал get_queryset, self.request.user все равно не возвращает пользователя.

views.py:

from rest_framework import viewsets
from rest_framework.response import Response
from rest_framework.permissions import IsAuthenticated
from rest_framework import status

from rsm_app.api.v1 import serializer as serializers
from rsm_app.users.models import User


class CurrentUserView(viewsets.ModelViewSet):

    permission_classes = (IsAuthenticated,)
    serializer_class = serializers.UserSerializer
    #queryset = User.objects.filter(name=request.user.name)

    def get_queryset(self):
        return self.request.user

    def put(self, request):
        serializer = serializers.UserSerializer(
            request.user, data=request.data)
        if request.data and serializer.is_valid():
            serializer.save()
            return Response(serializer.data)
        return Response({}, status=status.HTTP_400_BAD_REQUEST)

Url.py:

from rest_framework import routers
from django.urls import path, re_path, include

from graphene_django.views import GraphQLView
from rsm_app.api.v1 import views

app_name = "api.v1"
# Routers provide an easy way of automatically determining the URL conf.
router = routers.DefaultRouter()
router.register(r"user", views.CurrentUserView, basename="user")

# Wire up our API using automatic URL routing.
# Additionally, we include login URLs for the browsable API.
urlpatterns = [
    path("graphql", GraphQLView.as_view(graphiql=True)),
    re_path(r"^", include(router.urls)),
    re_path(r"user/", views.CurrentUserView, name='user'),
    re_path(r"^api-auth/", include("rest_framework.urls",
            namespace="rest_framework")),
]

В документации упоминается, что вы можете получить доступ к текущему пользователю по user = self.get_object()

Вы можете посмотреть полный пример из официальной документации .

Можете попробовать с:

queryset = User.objects.filter(name=request.user.name).first()

или

queryset = User.objects.get(name=request.user.name)
Вернуться на верх