Fixed #1033 -- pagination in object_list generic views now use 1-indexed page numbers in the URL. Thanks, Tom Tobin.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@2426 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Jacob Kaplan-Moss 2006-02-27 23:34:39 +00:00
parent 47f040d2eb
commit da310cff67
1 changed files with 8 additions and 8 deletions

View File

@ -39,22 +39,22 @@ def object_list(request, app_label, module_name, paginate_by=None, allow_empty=F
lookup_kwargs = extra_lookup_kwargs.copy() lookup_kwargs = extra_lookup_kwargs.copy()
if paginate_by: if paginate_by:
paginator = ObjectPaginator(mod, lookup_kwargs, paginate_by) paginator = ObjectPaginator(mod, lookup_kwargs, paginate_by)
page = request.GET.get('page', 0) page = request.GET.get('page', 1)
try: try:
object_list = paginator.get_page(page) page = int(page)
except InvalidPage: object_list = paginator.get_page(page - 1)
if page == 0 and allow_empty: except (InvalidPage, ValueError):
if page == 1 and allow_empty:
object_list = [] object_list = []
else: else:
raise Http404 raise Http404
page = int(page)
c = DjangoContext(request, { c = DjangoContext(request, {
'object_list': object_list, 'object_list': object_list,
'is_paginated': paginator.pages > 1, 'is_paginated': paginator.pages > 1,
'results_per_page': paginate_by, 'results_per_page': paginate_by,
'has_next': paginator.has_next_page(page), 'has_next': paginator.has_next_page(page - 1),
'has_previous': paginator.has_previous_page(page), 'has_previous': paginator.has_previous_page(page - 1),
'page': page + 1, 'page': page,
'next': page + 1, 'next': page + 1,
'previous': page - 1, 'previous': page - 1,
'pages': paginator.pages, 'pages': paginator.pages,