from rest_framework import viewsets, permissions from rest_framework.decorators import action from rest_framework.response import Response from .models import User from .serializers import UserSerializer, UserDetailSerializer class UserViewSet(viewsets.ModelViewSet): """ViewSet for User model.""" queryset = User.objects.all() permission_classes = [permissions.IsAuthenticated] def get_serializer_class(self): if self.action in ['retrieve', 'update', 'partial_update']: return UserDetailSerializer return UserSerializer @action(detail=False, methods=['get']) def me(self, request): """Get current user.""" serializer = self.get_serializer(request.user) return Response(serializer.data)