from rest_framework import viewsets, mixins, permissions from .models import User from .serializers import UserSerializer, UserDetailSerializer, UserCreateSerializer class UserViewSet(mixins.ListModelMixin, mixins.RetrieveModelMixin, mixins.UpdateModelMixin, viewsets.GenericViewSet): queryset = User.objects.all() serializer_class = UserSerializer permission_classes = [permissions.IsAuthenticated] def get_serializer_class(self): if self.action == "retrieve": return UserDetailSerializer if self.action == "create": return UserCreateSerializer return UserSerializer def get_queryset(self): user = self.request.user if user.role == "admin": return User.objects.all() return User.objects.filter(id=user.id)