from rest_framework.views import APIView from rest_framework.renderers import JSONRenderer from rest_framework.response import Response from journals.models import Thread from journals.serilizers import ThreadSerializer class ThreadListView(APIView): renderer_classes = (JSONRenderer,) status_code = 200 def get(self, request): return Response( [ThreadSerializer(thread).data for thread in Thread.objects.filter(is_staff=True)], self.status_code, ) class ThreadDetailView(APIView): renderer_classes = (JSONRenderer,) status_code = 200 def post(self, request, pk): try: thread = Thread.objects.get(id=pk) thread.text = request.JSON.get('text', thread.text) thread.key = request.JSON.get('key', thread.key) thread.x = request.JSON.get('x', thread.x) thread.y = request.JSON.get('y', thread.y) thread.save() return Response(ThreadSerializer(thread).data, self.status_code,) except Thread.DoesNotExist: return Response("Thread doesn't exist.", self.status_code,)