src/restapi/views.py
changeset 126 b5aa7e6f6a01
parent 123 c8a1216fd28f
child 127 270d165cd0d5
equal deleted inserted replaced
123:c8a1216fd28f 126:b5aa7e6f6a01
     1 from django.shortcuts import render, HttpResponse
       
     2 from pprint import pprint
       
     3 
       
     4 from django.views.decorators.csrf import csrf_exempt
       
     5 from rest_framework.renderers import JSONRenderer
       
     6 from rest_framework.parsers import JSONParser
       
     7 from iconolab.models import Annotation
       
     8 from .serializers import AnnotationSerializer
       
     9 
       
    10 class JSONResponse(HttpResponse):
       
    11 	def __init__(self, data, **kwargs):
       
    12 		content = JSONRenderer().render(data)
       
    13 		kwargs['content_type'] = 'application/json'
       
    14 		super(JSONResponse, self).__init__(content)
       
    15 
       
    16 
       
    17 # Create your views here.
       
    18 
       
    19 def index(r):
       
    20 	return HttpResponse('<p>You better know ... </p>')
       
    21 
       
    22 @csrf_exempt
       
    23 def annotation_list(request):
       
    24 	
       
    25 	if request.method == 'GET':
       
    26 		annotations = Annotation.objects.all()
       
    27 		serializer = AnnotationSerializer(annotations, many=True)
       
    28 		return JSONResponse(serializer.data)
       
    29 
       
    30 
       
    31 
       
    32 def get(request, pk):
       
    33 	if request.method == 'GET':
       
    34 		
       
    35 		try:
       
    36 			annotation = Annotation.objects.get(pk=pk)
       
    37 		except Annotation.DoesNotExist:
       
    38 			return HttpResponse(status=404)
       
    39 
       
    40 		serializer = AnnotationSerializer(annotation) 
       
    41 		return JSONResponse(serializer.data)