DRF Как получить информацию об авторизированном пользователе?

#django #django-rest-framework

#django #django-rest-framework

Вопрос:

Теперь я могу просто получить информацию по идентификатору. -> user/{id} Я хочу получить пользователя с авторизацией и получить его информацию по умолчанию, например user

Мой взгляд

 class UserInfoViewSet(mixins.RetrieveModelMixin,
                           viewsets.GenericViewSet):

    permission_classes = (IsAuthenticated,)
    serializer_class = serializers.UserFollowersSerializer

    def get_queryset(self):
        return User.objects.filter(privacy__is_public=True)
  

Комментарии:

1. вы хотите использовать ту же конечную точку ( user/{id} )? если нет, пожалуйста, поделитесь шаблоном URL, который вы хотите для API user info.

Ответ №1:

Итак, если вы хотите получить информацию о текущем вошедшем в систему пользователе, вы могли бы сделать что-то вроде этого:

 @action(methods=['get'], detail=False)
def current_user(self, request, *args, **kwargs):
    serializer = self.get_serializer(request.user)
    return Response(serializer.data)
  

Без дополнительных действий я мог бы подумать о следующих возможностях.

(1) Вы могли бы перезаписать свой get_queryset метод, чтобы просто фильтровать для user=self.request.user .

(2) Вы могли бы перезаписать get_object для возврата self.request.user .

Комментарии:

1. Возможно ли получить информацию о текущем вошедшем в систему пользователе без каких-либо действий?

2. @kate Я только что отредактировал свой ответ. Вы думали о чем-то подобном?