def render(self, request): cb = request.GET.get("callback", None) try: per_page = int(request.GET.get("per_page", 10)) except ValueError: per_page = 10 try: page_number = int(request.GET.get("page_number", 1)) except ValueError: page_number = 1 pages = Paginator(self.construct(), per_page) try: page = pages.page(page_number) except EmptyPage: page = pages.page(1) data = {"num_pages": pages.num_pages, "page_number": page_number, "data": page.object_list} serial = json.dumps(data, cls=DateTimeAwareJSONEncoder, ensure_ascii=False, indent=4) # Callback if cb and is_valid_jsonp_callback_value(cb): return "%s(%s)" % (cb, serial) return serial
def render(self, request): cb = request.GET.get('callback', None) seria = simplejson.dumps(self.construct(), cls=DateTimeAwareJSONEncoder, ensure_ascii=False, indent=4) # Callback if cb and is_valid_jsonp_callback_value(cb): return '%s(%s)' % (cb, seria) return seria
def render(self, request): cb = request.GET.get("callback", None) indent = None if settings.DEBUG: indent = 4 seria = json.dumps( self.construct(), cls=DateTimeAwareJSONEncoder, ensure_ascii=False, indent=indent, ) # Callback if cb and is_valid_jsonp_callback_value(cb): return "%s(%s)" % (cb, seria) return seria
def render(self, request): """ Renders dojo.data compatible JSON if self.data is a QuerySet, falls back to standard JSON. """ callback = request.GET.get('callback', None) try: indent = int(request.GET['indent']) except (KeyError, ValueError): indent = None data = self.construct() if isinstance(self.data, QuerySet): unicode_lookup_table = dict() [unicode_lookup_table.__setitem__(item.pk, unicode(item)) \ for item in self.data] for dict_item in data: try: id = dict_item['id'] except KeyError: raise KeyError('The handler of the model that you want '\ 'to emit as DojoData needs to expose the `id` field!') else: dict_item.setdefault('_unicode', unicode_lookup_table[id]) data = { 'identifier': 'id', 'items': data, 'label': '_unicode', 'numRows': self.data.count(), } serialized_data = json.dumps(data, ensure_ascii=False, cls=DateTimeAwareJSONEncoder, indent=indent) if callback and is_valid_jsonp_callback_value(callback): return '%s(%s)' % (callback, serialized_data) return serialized_data
def render(self, request): cb = request.GET.get('callback', None) try: per_page = int(request.GET.get('per_page', 20)) except ValueError: per_page = 20 try: page_number = int(request.GET.get('page_number', 1)) except ValueError: page_number = 1 try: #Checks whether self.construct() supports count() and __len__(); if it doesn't (i.e. it cannot be paginated), #returns it unchanged getattr(self.construct(), 'count'); getattr(self.construct(), '__len__') pages = Paginator(self.construct(), per_page) try: page = pages.page(page_number) except EmptyPage: page = pages.page(1) resp = {'num_pages': pages.num_pages, 'page_number': page_number, 'objects': page.object_list } except AttributeError: resp = self.construct() serial = json.dumps(resp, cls=DateTimeAwareJSONEncoder, ensure_ascii=False, indent=4) # Callback if cb and is_valid_jsonp_callback_value(cb): return '%s(%s)' % (cb, serial) return serial
def render(self, request): """ Renders dojo.data compatible JSON if self.data is a QuerySet, falls back to standard JSON. """ callback = request.GET.get("callback", None) try: indent = int(request.GET["indent"]) except (KeyError, ValueError): indent = None data = self.construct() if isinstance(self.data, QuerySet): unicode_lookup_table = dict() [unicode_lookup_table.__setitem__(item.pk, unicode(item)) for item in self.data] for dict_item in data: try: id = dict_item["id"] except KeyError: raise KeyError( "The handler of the model that you want " "to emit as DojoData needs to expose the `id` field!" ) else: dict_item.setdefault("_unicode", unicode_lookup_table[id]) data = {"identifier": "id", "items": data, "label": "_unicode", "numRows": self.data.count()} serialized_data = json.dumps(data, ensure_ascii=False, cls=DateTimeAwareJSONEncoder, indent=indent) if callback and is_valid_jsonp_callback_value(callback): return "%s(%s)" % (callback, serialized_data) return serialized_data