Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I've just had to make a hacky solution for this so I'll post it as an answer - any improvements welcome:</p> <pre><code>from django.core import serializers from django.core.paginator import Paginator, InvalidPage, EmptyPage from django.core.serializers.json import DjangoJSONEncoder from django.http import HttpResponse from django.utils import simplejson from types import MethodType from mysite.tasks.models import Task PER_PAGE = 20 def list(request): """ Return a paginated JSON object. """ paginator = Paginator(tasks.objects.all(), PER_PAGE) try: page = int(request.GET.get('page', '1')) except ValueError: page = 1 # If page request (9999) is out of range, deliver last page of results. try: pagetasks = paginator.page(page) except (EmptyPage, InvalidPage): pagetasks = paginator.page(paginator.num_pages) # Dump the Page attributes we want to a dictionary serializedpage = {} wanted = ("end_index", "has_next", "has_other_pages", "has_previous", "next_page_number", "number", "start_index", "previous_page_number") for attr in wanted: v = getattr(tasks, attr) if isinstance(v, MethodType): serializedpage[attr] = v() elif isinstance(v, (str, int)): serializedpage[attr] = v # Serialise the queryset to plain Python objects # and add them to the serialized page dictionary pythonserializer = serializers.get_serializer("python")() serializedpage["object_list"] = pythonserializer.serialize(pagetasks.object_list, fields=('task_id', 'task_data')) # Dump it as JSON using the Django encoder response = HttpResponse(mimetype="application/json") simplejson.dump(serializedpage, response, cls=DjangoJSONEncoder) return response </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload