Ejemplo n.º 1
0
    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")
Ejemplo n.º 2
0
    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