from rest_framework.renderers import JSONRenderer from rest_framework.response import Response from rest_framework.views import APIView from library.models import Article from library.serializers import ArticleSerializer, ArticleDetailSerializer class LibraryListView(APIView): renderer_classes = (JSONRenderer,) status_code = 200 def get(self, request): return Response([ArticleSerializer(i).data for i in Article.objects.filter(public=True)], self.status_code) class LibraryDetailView(APIView): renderer_classes = (JSONRenderer,) status_code = 200 def get(self, request, slug): try: article = Article.objects.get(slug=slug) if not article.public: return Response('Article not published', 403) return Response(ArticleDetailSerializer(article).data, self.status_code) except Article.DoesNotExist: return Response("Article doesn't exist", status=404)