Ticket #1033: list_detail_oneindexed.diff

File list_detail_oneindexed.diff, 1.4 KB (added by Tom Tobin <korpios@…>, 10 years ago)

Implements one-indexed list_detail generic view

  • django/views/generic/list_detail.py

     
    3939    lookup_kwargs = extra_lookup_kwargs.copy()
    4040    if paginate_by:
    4141        paginator = ObjectPaginator(mod, lookup_kwargs, paginate_by)
    42         page = request.GET.get('page', 0)
     42        page = request.GET.get('page', 1)
    4343        try:
    44             object_list = paginator.get_page(page)
    45         except InvalidPage:
    46             if page == 0 and allow_empty:
     44            page = int(page)
     45            object_list = paginator.get_page(page - 1)
     46        except (InvalidPage, ValueError):
     47            if page == 1 and allow_empty:
    4748                object_list = []
    4849            else:
    4950                raise Http404
    50         page = int(page)
    5151        c = Context(request, {
    5252            'object_list': object_list,
    5353            'is_paginated': paginator.pages > 1,
    5454            'results_per_page': paginate_by,
    55             'has_next': paginator.has_next_page(page),
    56             'has_previous': paginator.has_previous_page(page),
    57             'page': page + 1,
     55            'has_next': paginator.has_next_page(page - 1),
     56            'has_previous': paginator.has_previous_page(page - 1),
     57            'page': page,
    5858            'next': page + 1,
    5959            'previous': page - 1,
    6060            'pages': paginator.pages,
Back to Top