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:
parent
47f040d2eb
commit
da310cff67
|
@ -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,
|
||||||
|
|
Loading…
Reference in New Issue