def _load_getdata(self): if 'getdata_in_qrystring' in self.request.GET or self.use_extjshacks: # NOTE: For easier ExtJS integration return True, self.request.GET else: try: return False, serializers.deserialize(self.comformat, self.request.raw_post_data) except ValueError, e: raise ValueError(('Bad request data: {0}. Perhaps you ment to' 'send GET data as a querystring? In that case, add ' 'getdata_in_qrystring=1 to your querystring.'.format(e)))
def _create_or_replace(self, instance=None): data = serializers.deserialize(self.comformat, self.request.raw_post_data) form = self.__class__.EditForm(data, instance=instance) if form.is_valid(): try: if instance == None: id = self._meta.simplified.create(self.request.user, **form.cleaned_data) else: id = self._meta.simplified.update(self.request.user, instance.pk, **form.cleaned_data) except PermissionDenied: return ForbiddenSerializableResult() data['id'] = id result = self._extjswrapshortcut(data) if instance == None: return SerializableResult(result, httpresponsecls=HttpResponseCreated) else: return SerializableResult(result) else: return FormErrorSerializableResult(form, self.use_extjshacks)
def _deserialize_create_or_replace_request(self): data = serializers.deserialize(self.comformat, self.request.raw_post_data) if isinstance(data, list): return data, False else: return data, True
return ForbiddenSerializableResult(e) return self._create_or_replace_single(data, instance) else: return self._create_or_replace_many(data, update=True) def _delete_many(self): if 'deletedata_in_qrystring' in self.request.GET: try: raw_data = self.request.GET['pks'] except KeyError, e: return ErrorMsgSerializableResult('The querystring must contain a JSON encoded array of primary-keys in the "pks" attribute.', httpresponsecls=HttpResponseBadRequest) else: raw_data = self.request.raw_post_data list_of_pks = serializers.deserialize(self.comformat, raw_data) if not isinstance(list_of_pks, list): return ErrorMsgSerializableResult('Requires "pks" as a JSON encoded array.', httpresponsecls=HttpResponseBadRequest) pks = self._meta.simplified.deletemany(self.request.user, *list_of_pks) result = self.extjswrapshortcut(pks, total=len(pks)) return SerializableResult(result) def crud_delete(self, request, id=None): """ Maps to the ``delete`` method of the simplified class. """ is_single = id != None if is_single: try: self._meta.simplified.delete(request.user, id) except PermissionDenied, e: