Changeset 8129
- Timestamp:
- 07/28/08 00:30:35 (4 months ago)
- Files:
-
- django/trunk/django/core/paginator.py (modified) (4 diffs)
- django/trunk/tests/regressiontests/pagination_regress (added)
- django/trunk/tests/regressiontests/pagination_regress/__init__.py (added)
- django/trunk/tests/regressiontests/pagination_regress/models.py (added)
- django/trunk/tests/regressiontests/pagination_regress/tests.py (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk/django/core/paginator.py
r8121 r8129 1 from math import ceil 2 1 3 class InvalidPage(Exception): 2 4 pass … … 56 58 "Returns the total number of pages." 57 59 if self._num_pages is None: 58 hits = self.count - 1 - self.orphans 59 if hits < 1: 60 hits = 0 61 if hits == 0 and not self.allow_empty_first_page: 60 if self.count == 0 and not self.allow_empty_first_page: 62 61 self._num_pages = 0 63 62 else: 64 self._num_pages = hits // self.per_page + 1 63 hits = max(1, self.count - self.orphans) 64 self._num_pages = int(ceil(hits / float(self.per_page))) 65 65 return self._num_pages 66 66 num_pages = property(_get_num_pages) … … 105 105 relative to total objects in the paginator. 106 106 """ 107 # Special case, return zero if no items. 108 if self.paginator.count == 0: 109 return 0 107 110 return (self.paginator.per_page * (self.number - 1)) + 1 108 111 … … 112 115 relative to total objects found (hits). 113 116 """ 117 # Special case for the last page because there can be orphans. 114 118 if self.number == self.paginator.num_pages: 115 119 return self.paginator.count
