from blog.models import BlogEntry, BlogSection
from django.http import Http404, HttpResponse
from django.template import RequestContext, loader
-from django.core.paginator import ObjectPaginator
+from django.core.paginator import Paginator
from django.conf import settings
def blog_index(request, section=None):
entries = entries.order_by('-publish_date')
if entries:
paginate_by=20
- paginator = ObjectPaginator(entries, paginate_by)
- page = int(request.GET.get('page', 0))
- if page > 0:
- page = page - 1
- paginated_entries = paginator.get_page(page)
- pages = [i for i in range(1, paginator.pages + 1)]
+ paginator = Paginator(entries, paginate_by)
+ try:
+ page = int(request.GET.get('page', 1))
+ except ValueError:
+ page = 1
+ paginated_entries = paginator.page(page)
+ pages = paginator.page_range
t = loader.get_template("blog/blog_index.html")
c = RequestContext(request,
{
- "entries": paginated_entries,
+ "entries": paginated_entries.object_list,
"title": settings.BLOG_TITLE,
- "page": page + 1,
+ "page": page,
"pages": pages,
"paginated": 1,
- "has_next": paginator.has_next_page(page),
- "has_prev": paginator.has_next_page(page),
- "next": page + 2,
+ "has_next": paginated_entries.has_next(),
+ "has_prev": paginated_entries.has_previous(),
+ "next": page + 1,
"prev": page - 1
})
return HttpResponse(t.render(c))