From a004b3eb0ef4519b6c9fb441adf6a02ddb7c3cf0 Mon Sep 17 00:00:00 2001 From: Pratyush Desai Date: Sat, 8 Jan 2022 04:59:57 +0530 Subject: [PATCH] generic cbviews --- website/snippets/views.py | 55 ++++++--------------------------------- 1 file changed, 8 insertions(+), 47 deletions(-) diff --git a/website/snippets/views.py b/website/snippets/views.py index e247810..367ede8 100644 --- a/website/snippets/views.py +++ b/website/snippets/views.py @@ -1,51 +1,12 @@ from .models import Snippet from .serializers import SnippetSerializer -from django.http import Http404 -from rest_framework.views import APIView -from rest_framework.response import Response -from rest_framework import status +from rest_framework import generics + +class SnippetList(generics.ListCreateAPIView): + queryset = Snippet.objects.all() + serializer_class = SnippetSerializer -class SnippetList(APIView): - """ - List all snippets, or create a new snippet. - """ - def get(self, request, format=None): - snippets = Snippet.objects.all() - serializer = SnippetSerializer(snippets, many=True) - return Response(serializer.data) - - def post(self, request, format=None): - serializer = SnippetSerializer(data=request.data) - if serializer.is_valid(): - serializer.save() - return Response(serializer.data, status=status.HTTP_201_CREATED) - return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) - -class SnippetDetail(APIView): - """ - Retrieve, update or delete a snippet instance. - """ - def get_object(self, pk): - try: - return Snippet.objects.get(pk=pk) - except Snippet.DoesNotExist: - raise Http404 - - def get(self, request, pk, format=None): - snippet = self.get_object(pk) - serializer = SnippetSerializer(snippet) - return Response(serializer.data) - - def put(self, request, pk, format=None): - snippet = self.get_object(pk) - serializer = SnippetSerializer(snippet, data=request.data) - if serializer.is_valid(): - serializer.save() - return Response(serializer.data) - return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) - - def delete(self, request, pk, format=None): - snippet = self.get_object(pk) - snippet.delete() - return Response(status=status.HTTP_204_NO_CONTENT) \ No newline at end of file +class SnippetDetail(generics.RetrieveUpdateDestroyAPIView): + queryset = Snippet.objects.all() + serializer_class = SnippetSerializer \ No newline at end of file