Django

Code

Changeset 7867

Show
Ignore:
Timestamp:
07/07/08 21:20:48 (5 months ago)
Author:
adrian
Message:

Fixed #7307 -- Split InvalidPage? exception into two subclasses, PageNotAnInteger? and EmptyPage?, for granular exception catching. Thanks for the idea, miracle2k

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/core/paginator.py

    r7865 r7867  
    11class InvalidPage(Exception): 
     2    pass 
     3 
     4class PageNotAnInteger(InvalidPage): 
     5    pass 
     6 
     7class EmptyPage(InvalidPage): 
    28    pass 
    39 
     
    1521            number = int(number) 
    1622        except ValueError: 
    17             raise InvalidPage('That page number is not an integer') 
     23            raise PageNotAnInteger('That page number is not an integer') 
    1824        if number < 1: 
    19             raise InvalidPage('That page number is less than 1') 
     25            raise EmptyPage('That page number is less than 1') 
    2026        if number > self.num_pages: 
    2127            if number == 1 and self.allow_empty_first_page: 
    2228                pass 
    2329            else: 
    24                 raise InvalidPage('That page contains no results') 
     30                raise EmptyPage('That page contains no results') 
    2531        return number 
    2632 
     
    130136            page_number = int(page_number) + 1 
    131137        except ValueError: 
    132             raise InvalidPage 
     138            raise PageNotAnInteger 
    133139        return self.validate_number(page_number) 
    134140 
     
    137143            page_number = int(page_number) + 1 
    138144        except ValueError: 
    139             raise InvalidPage 
     145            raise PageNotAnInteger 
    140146        return self.page(page_number).object_list 
    141147 
  • django/trunk/docs/pagination.txt

    r7865 r7867  
    8383``page_range`` -- A 1-based range of page numbers, e.g., ``[1, 2, 3, 4]``. 
    8484 
     85``InvalidPage`` exceptions 
     86========================== 
     87 
     88The ``page()`` method raises ``InvalidPage`` if the requested page is invalid 
     89(i.e., not an integer) or contains no objects. Generally, it's enough to trap 
     90the ``InvalidPage`` exception, but if you'd like more granularity, you can trap 
     91either of the following exceptions: 
     92 
     93``PageNotAnInteger`` -- Raised when ``page()`` is given a value that isn't an integer. 
     94 
     95``EmptyPage`` -- Raised when ``page()`` is given a valid value but no objects exist on that page. 
     96 
     97Both of the exceptions are subclasses of ``InvalidPage``, so you can handle 
     98them both with a simple ``except InvalidPage``. 
     99 
    85100``Page`` objects 
    86101================