def post(self, request, *args, **kwargs): if not self.check_perms(): raise Http404() try: description = json.loads(request.body) except ValueError: return HttpResponseBadRequest("Not a JSON document") exhibit = self.get_parent_object() prop_name = self.kwargs["property"] if not description: return HttpResponseBadRequest("No property description " "for %s" % prop_name) serializer_class = serializers.get_serializer_type_by_dict(description) serializer = serializer_class(exhibit, prop_name, data=description, draft=True) if not serializer.is_valid(): return HttpResponseBadRequest("<br/>".join(serializer.errors)) serializer.save() return HttpResponse("OK")
def post(self, request, *args, **kwargs): if not self.check_perms(): raise Http404() try: data = json.loads(request.body, parse_float=Decimal) except ValueError: return HttpResponseBadRequest("Not a JSON document") exhibit = self.get_parent_object() serializer_class = serializers.get_serializer_type_by_dict(data) serializer = serializer_class(exhibit, data=data, draft=True) if not serializer.is_valid(): return HttpResponseBadRequest("<br/>".join(serializer.errors)) serializer.save() out = serializer_class(exhibit, instance=serializer.instance, draft=True) response = HttpResponse(json.dumps(out.data)) response["Content-Type"] = "application/json" response["Expires"] = 0 return response