from rest_framework.generics import ListAPIView, RetrieveAPIView from rest_framework.schemas.openapi import AutoSchema from roster.models import RollingStock from roster.serializers import RollingStockSerializer class RosterList(ListAPIView): queryset = RollingStock.objects.all() serializer_class = RollingStockSerializer class RosterGet(RetrieveAPIView): queryset = RollingStock.objects.all() serializer_class = RollingStockSerializer lookup_field = "uuid" schema = AutoSchema( operation_id_base="retrieveRollingStockByUUID" ) class RosterAddress(ListAPIView): serializer_class = RollingStockSerializer schema = AutoSchema( operation_id_base="retrieveRollingStockByAddress" ) def get_queryset(self): address = self.kwargs["address"] return RollingStock.objects.filter(address=address) class RosterClass(ListAPIView): serializer_class = RollingStockSerializer schema = AutoSchema( operation_id_base="retrieveRollingStockByClass" ) def get_queryset(self): _class = self.kwargs["class"] return RollingStock.objects.filter(rolling_class__identifier=_class)