From 4ee0e7dddf6076f17937cb988930a8646e72d8ef Mon Sep 17 00:00:00 2001 From: Nikolai Kristiansen Date: Sun, 25 Sep 2011 02:14:24 +0200 Subject: [PATCH] Table with pagination. --- main/views.py | 17 ++++++++++++++++- templates/base.html | 15 +++++++++++++++ templates/home.html | 35 +++++++++++++++++++++++++++++++---- 3 files changed, 62 insertions(+), 5 deletions(-) create mode 100644 templates/base.html diff --git a/main/views.py b/main/views.py index f66054b..e95356e 100644 --- a/main/views.py +++ b/main/views.py @@ -1,11 +1,26 @@ from django.http import HttpResponse from django.shortcuts import render_to_response, get_object_or_404 from django.template import RequestContext +from django.core.paginator import Paginator, EmptyPage, InvalidPage from main.models import * def home(request): + entry_list = Entry.objects.all().order_by('created').reverse() + paginator = Paginator(entry_list, 10) # Show 25 entries per page - entries = Entry.objects.all().order_by('created').reverse() + # Make sure page request is an int. If not, deliver first page + try: + page = int(request.GET.get('page','1')) + except ValueError: + page = 1 + + # If page is out of range (e.g. 9999), deliver last page of results. + try: + entries = paginator.page(page) + except (EmptyPage, InvalidPage): + entries = paginator.page(paginator.num_pages) + + print entries.__dict__ return render_to_response('home.html', locals(), context_instance=RequestContext(request)) diff --git a/templates/base.html b/templates/base.html new file mode 100644 index 0000000..a1dca36 --- /dev/null +++ b/templates/base.html @@ -0,0 +1,15 @@ + + + {% block title %} Driftslogg {% endblock %} + {% block headinc %} + {% endblock %} + + +
+ {% block content %} + {% endblock %} +
+{% block footerinc %} +{% endblock %} + + diff --git a/templates/home.html b/templates/home.html index 73fd17f..17e64b8 100644 --- a/templates/home.html +++ b/templates/home.html @@ -1,7 +1,34 @@ +{% extends "base.html" %} +{% block content %} {% if entries %} -