Как вернуть список или получить объект из одного класса в django rest? - PullRequest
0 голосов
/ 14 июля 2020

Я использую 2 разных класса для выполнения операций получения и извлечения.

class Stock(ListAPIView):
    serializer_class=StockSerializer
    queryset=Stock.objects.all()

class StockView(RetrieveAPIView):
    serializer_class = StockSerializer
    lookup_field = 'slug'

    def get_queryset(self, slug):                    
            collection = Stock.objects.get(slug=slug)            
        return collection

    def get(self, request, slug):
        collection = self.get_queryset(slug)
        serializer = CollectionSerializer(collection)
        
        return Response(
            serializer.data, 
            status=status.HTTP_200_OK
        )

но я хочу выполнять обе операции из одного класса, т.е. я не хочу писать 2 разных класса. Итак, как обрабатывать оба (GET & RETRIEVE) из одного класса? Можем ли мы сделать это с помощью generi c APIViews? Заранее спасибо

1 Ответ

1 голос
/ 14 июля 2020

Если вам требуются только операции GET и RETRIEVE, вы можете использовать ReadOnlyModelViewSet.

from rest_framework.viewsets import ReadOnlyModelViewSet

class StockView(ReadOnlyModelViewSet):
    serializer_class = StockSerializer
    lookup_field = 'slug'
    queryset = Stock.objects.all()
...