Skip to content

Instantly share code, notes, and snippets.

@adamalton
Last active December 16, 2015 06:09
Show Gist options
  • Save adamalton/5389402 to your computer and use it in GitHub Desktop.
Save adamalton/5389402 to your computer and use it in GitHub Desktop.
Example of pagination on Google App Engine which allows going back a page
<h1>Page 1</h1>
<a href="/myview/?page={{previous_page_number}}">Previous page</a>
<a href="/myview/?page={{next_page_number}}">Next page</a>
{% for object in results %}
{{object}} {#whatever you're displaying #}
{% endfor %}
def my_view(request):
""" View any page of objects. """
results_per_page = 100
page_number = request.GET.get('page', 1)
this_page_cursor_key = "cursor_for_page_%s" % page_number
next_page_cursor_key = "cursor_for_page_%s" % page_number + 1
results = MyModel.objects.all()
if page_number > 1:
cursor = memcache.get(this_page_cursor_key)
set_cursor(results, cursor)
next_page_cursor = get_cursor(results)
memcache.set(next_page_cursor_key, next_page_cursor)
template_vars = {
"results": results,
"previous_page_number": page_number -1,
"next_page_number": page_number +1
}
return render_to_response("template.html", template_vars)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment