def search(request): if request.method == "GET": query = {k: v for k, v in request.GET.items()} annotations = models.Annotation.objects.filter(**query) serializer = serializers.AnnotationSerializer(annotations, many=True) return JSONResponse({"total": len(serializer.data), "rows": serializer.data}) else: return HttpResponseForbidden()
def index_create(request): if request.method == "GET": annotations = models.Annotation.objects.all() serializer = serializers.AnnotationSerializer(annotations, many=True) return JsonResponse(serializer.data) elif request.method == "POST": data = json.loads(request.body) serializer = serializers.AnnotationSerializer(data=data) if serializer.is_valid(): serializer.save() response = HttpResponse(status=303) response["Location"] = reverse( "read_update_delete", kwargs={"pk": serializer.data["id"]}) return response else: return HttpResponseBadRequest(content=str(serializer.errors)) else: return HttpResponseForbidden()
def read_update_delete(request, pk): if request.method == "GET": annotation = get_object_or_404(models.Annotation, pk=pk) serializer = serializers.AnnotationSerializer(annotation) return JSONResponse(serializer.data, status=200) elif request.method == "PUT": annotation = get_object_or_404(models.Annotation, pk=pk) data = JSONParser().parse(request) serializer = serializers.AnnotationSerializer(annotation, data=data) if serializer.is_valid(): serializer.save() response = HttpResponse(status=303) response["Location"] = reverse("read_update_delete", kwargs={"pk": serializer.data["id"]}) return response else: return HttpResponseBadRequest(content=str(serializer.errors)) elif request.method == "DELETE": annotation = get_object_or_404(models.Annotation, pk=pk) annotation.delete() return HttpResponse(status=204) else: return HttpResponseForbidden()
def index_create(request): if request.method == "GET": annotations = models.Annotation.objects.all() serializer = serializers.AnnotationSerializer(annotations, many=True) return JSONResponse(serializer.data) elif request.method == "POST": data = JSONParser().parse(request) for field, value in data.items(): if field == "user": data[field] = int(value) serializer = serializers.AnnotationSerializer(data=data) print(serializer) if serializer.is_valid(): serializer.save() response = HttpResponse(status=303) response["Location"] = reverse("read_update_delete", kwargs={"pk": serializer.data["id"]}) print(response) return response else: return HttpResponseBadRequest(content=str(serializer.errors)) else: return HttpResponseForbidden()