# views.py
from rest_framework import viewsets
from rest_framework.decorators import detail_route
from .serializers import SomeSerializer
class SomeModelViewSet(viewsets.ReadOnlyModelViewSet):
queryset = SomeModel.objects.all()
serializer_class = SomeSerializer
def list(self):
return super().list()
def retrieve(self):
return super().retrieve()
@detail_route(
methods=['post'],
authentication_classes=[BasicAuthentication],
permission_classes=[IsAuthenticated])
def enroll(self, request, *args, **kwargs):
obj = self.get_object()
# ...
return Response({'some_attr': True})