from django.contrib.auth import get_user_model from django.contrib.auth.models import Group from rest_framework.response import Response from rest_framework.exceptions import NotFound from rest_framework import serializers from rest_framework.views import APIView from rest_framework.permissions import IsAuthenticated from rest_framework_api_key.permissions import HasAPIKey class UserSerializer(serializers.ModelSerializer): class Meta: model = get_user_model() fields = ['id', 'username', 'email'] class GroupUsersAPIView(APIView): permission_classes = [IsAuthenticated | HasAPIKey] def get(self, request, group_name): try: group = Group.objects.get(name=group_name) except Group.DoesNotExist: raise NotFound(f"Group '{group_name}' not found.") users = group.user_set.all() serializer = UserSerializer(users, many=True) return Response(serializer.data)