from rest_framework.generics import ListAPIView, RetrieveAPIView from ..models import BookReference , BookAuthor , BookReferenceImage from ..serializers.reference import BookAuthorSerializer, BookDetailSerializer , BookReferenceSerializer from ..docs import book_references_list_swagger, book_authors_list_swagger, book_detail_swagger from utils.pagination import NoPagination class BookReferencesView(ListAPIView): queryset = BookReference.objects.all() serializer_class = BookReferenceSerializer @book_references_list_swagger def get(self, request, *args, **kwargs): return super().get(request, *args, **kwargs) class BookAuthorView(ListAPIView): queryset = BookAuthor.objects.all() serializer_class = BookAuthorSerializer @book_authors_list_swagger def get(self, request, *args, **kwargs): return super().get(request, *args, **kwargs) class BookDetailView(RetrieveAPIView): serializer_class = BookDetailSerializer lookup_field = 'id' lookup_url_kwarg = 'bookreference_id' @book_detail_swagger def get(self, request, *args, **kwargs): return super().get(request, *args, **kwargs) def get_queryset(self): return BookReference.objects.filter(id = self.kwargs['bookreference_id']).prefetch_related( 'bookauthor_set__name', 'bookreferenceimage_set__image', ) # class BookReferencesView(ListAPIView): # pass