from rest_framework import status from rest_framework.decorators import api_view from rest_framework.response import Response from snippets.models import Snippet from snippets.serializers import SnippetSerializer
@api_view(['GET', 'POST']) defsnippet_list(request): """ List all code snippets, or create a new snippet """ if request.method == 'GET': snippets = Snippet.objects.all() serializer = SnippetSerializer(snippets, many=True) return Response(serializer.data) elif request.method == "POST": 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_REQEUST)
우리의 인스턴스 뷰는 지난 예시보다 조금 향상되었습니다. 조금 더 간결하고, 코드는 이제 Forms API 와 작업하는것과 더 많이 비슷한 느낌입니다. 우리는 또한, 이름을 가진 상태값들을 사용하여, 응답들이 의미하는바를 좀 더 명확하게 해줍니다.
개별 snippet 에 대한 뷰는 아래의 예시처럼 고쳐줍니다. snippet/views.py 를 아래와 같이 수정해 줍니다.