Creating a Django REST Framework Static ViewSet

Django REST Framework Static ViewSet

A need arose to create an endpoint to hold utility functions, so I created a basic static ViewSet. By doing so, I could still leverage all of the advantages of DRF’s routers, while avoiding creation of a placeholder model.

The snippets below include the ViewSet creation and DRF router binding.

ViewSet code

from rest_framework import viewsets

class UtilityViewSet(viewsets.ViewSet):
    """Static ViewSet which has utility actions"""

    # Set the "queryset" to whichever model permissions should checked against
    # See "Using with views that do not include a queryset"
    # https://www.django-rest-framework.org/api-guide/permissions/
    queryset = User.objects.none()  # Required for DjangoModelPermissions

    def list(self, request):
        return Response({"description": "Endpoint used to bind general utility functions"})

Router code

from rest_framework.routers import DefaultRouter

router.register("utility", UtilityViewSet, basename="utility")