X-Git-Url: https://git.mdrn.pl/django-pagination.git/blobdiff_plain/6351d0071e6194c9fee3ec0df447acc84f6e4f7d..1df6507872d73ee387eb375428eafbfc253dfcd8:/pagination/templatetags/pagination_tags.py diff --git a/pagination/templatetags/pagination_tags.py b/pagination/templatetags/pagination_tags.py index 3442fcd..7505b74 100644 --- a/pagination/templatetags/pagination_tags.py +++ b/pagination/templatetags/pagination_tags.py @@ -2,7 +2,9 @@ try: set except NameError: from sets import Set as set + from django import template +from django.http import Http404 from django.core.paginator import Paginator, InvalidPage from django.conf import settings @@ -11,6 +13,8 @@ register = template.Library() DEFAULT_PAGINATION = getattr(settings, 'PAGINATION_DEFAULT_PAGINATION', 20) DEFAULT_WINDOW = getattr(settings, 'PAGINATION_DEFAULT_WINDOW', 4) DEFAULT_ORPHANS = getattr(settings, 'PAGINATION_DEFAULT_ORPHANS', 0) +INVALID_PAGE_RAISES_404 = getattr(settings, 'PAGINATION_INVALID_PAGE_RAISES_404', + False) def do_autopaginate(parser, token): """ @@ -85,6 +89,9 @@ class AutoPaginateNode(template.Node): try: page_obj = paginator.page(context['request'].page) except InvalidPage: + if INVALID_PAGE_RAISES_404: + raise Http404('Invalid page requested. If DEBUG were set to ' + + 'False, an HTTP 404 page would have been shown instead.') context[key] = [] context['invalid_page'] = True return u''