def _get_streaming_response(self): """ Get a StreamingHttpResponse response object """ def get_json_string(item): return json.dumps( item.json if isinstance(item, Instance) else item) if self.kwargs.get('format') == 'xml': response = StreamingHttpResponse( renderers.InstanceXMLRenderer().stream_data( self.object_list, self.get_serializer), content_type="application/xml") else: response = StreamingHttpResponse(json_stream( self.object_list, get_json_string), content_type="application/json") # calculate etag value and add it to response headers if hasattr(self, 'etag_hash'): self.set_etag_header(None, self.etag_hash) # set headers on streaming response for k, v in self.headers.items(): response[k] = v return response
def _get_streaming_response(self): """ Get a StreamingHttpResponse response object """ # use queryset_iterator. Will need to change this to the Django # native .iterator() method when we upgrade to django version 2 # because in Django 2 .iterator() has support for chunk size queryset = queryset_iterator(self.object_list, chunksize=2000) def get_json_string(item): return json.dumps( XFormBaseSerializer(instance=item, context={ 'request': self.request }).data) response = StreamingHttpResponse(json_stream(queryset, get_json_string), content_type="application/json") # calculate etag value and add it to response headers if hasattr(self, 'etag_data'): self.set_etag_header(None, self.etag_data) self.set_cache_control(response) # set headers on streaming response for k, v in self.headers.items(): response[k] = v return response
def _get_streaming_response(self): """ Get a StreamingHttpResponse response object """ # use queryset_iterator. Will need to change this to the Django # native .iterator() method when we upgrade to django version 2 # because in Django 2 .iterator() has support for chunk size queryset = queryset_iterator(self.object_list, chunksize=2000) def get_json_string(item): return json.dumps(XFormBaseSerializer( instance=item, context={'request': self.request} ).data) response = StreamingHttpResponse( json_stream(queryset, get_json_string), content_type="application/json" ) # calculate etag value and add it to response headers if hasattr(self, 'etag_data'): self.set_etag_header(None, self.etag_data) self.set_cache_control(response) # set headers on streaming response for k, v in self.headers.items(): response[k] = v return response
def get_streaming_response(self, data): """Get a StreamingHttpResponse response object""" def get_json_string(item): return json.dumps( {re.sub(r"\W", r"_", a): b for a, b in item.items()}) response = StreamingHttpResponse(json_stream(data, get_json_string), content_type="application/json") # set headers on streaming response for k, v in self.headers.items(): response[k] = v return response
def _get_streaming_response(self, data): """Get a StreamingHttpResponse response object""" def get_json_string(item): return json.dumps({ re.sub(r"\W", r"_", a): b for a, b in item.items()}) response = StreamingHttpResponse( json_stream(data, get_json_string), content_type="application/json" ) # set headers on streaming response for k, v in self.headers.items(): response[k] = v return response
def _get_streaming_response(self): """ Get a StreamingHttpResponse response object """ def get_json_string(item): return json.dumps( item.json if isinstance(item, Instance) else item) response = StreamingHttpResponse(json_stream(self.object_list, get_json_string), content_type="application/json") # calculate etag value and add it to response headers if hasattr(self, 'etag_hash'): self.set_etag_header(None, self.etag_hash) # set headers on streaming response for k, v in self.headers.items(): response[k] = v return response
def _get_streaming_response(self): """ Get a StreamingHttpResponse response object """ def get_json_string(item): return json.dumps( item.json if isinstance(item, Instance) else item) response = StreamingHttpResponse( json_stream(self.object_list, get_json_string), content_type="application/json" ) # calculate etag value and add it to response headers if hasattr(self, 'etag_hash'): self.set_etag_header(None, self.etag_hash) # set headers on streaming response for k, v in self.headers.items(): response[k] = v return response