Changeset 7881 for django/branches/newforms-admin/django/core/paginator.py
- Timestamp:
- 07/10/08 15:47:18 (6 months ago)
- Files:
-
- django/branches/newforms-admin (modified) (1 prop)
- django/branches/newforms-admin/django/core/paginator.py (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/branches/newforms-admin
- Property svnmerge-integrated changed from /django/trunk:1-4345,4350-4357,4359-4365,4371-4372,4374-4377,4380-4386,4388,4390-4391,4400-4402,4404-4408,4410,4412-4419,4426-4427,4430-4432,4434,4441,4443-4444,4446-4447,4450,4452-4453,4455-4458,4476,4503,4546,4564-4569,4580-4586,4617,4630,4641-6390,6392-7852 to /django/trunk:1-4345,4350-4357,4359-4365,4371-4372,4374-4377,4380-4386,4388,4390-4391,4400-4402,4404-4408,4410,4412-4419,4426-4427,4430-4432,4434,4441,4443-4444,4446-4447,4450,4452-4453,4455-4458,4476,4503,4546,4564-4569,4580-4586,4617,4630,4641-6390,6392-7880
django/branches/newforms-admin/django/core/paginator.py
r7830 r7881 1 1 class InvalidPage(Exception): 2 pass 3 4 class PageNotAnInteger(InvalidPage): 5 pass 6 7 class EmptyPage(InvalidPage): 2 8 pass 3 9 … … 15 21 number = int(number) 16 22 except ValueError: 17 raise InvalidPage('That page number is not an integer')23 raise PageNotAnInteger('That page number is not an integer') 18 24 if number < 1: 19 raise InvalidPage('That page number is less than 1')25 raise EmptyPage('That page number is less than 1') 20 26 if number > self.num_pages: 21 27 if number == 1 and self.allow_empty_first_page: 22 28 pass 23 29 else: 24 raise InvalidPage('That page contains no results')30 raise EmptyPage('That page contains no results') 25 31 return number 26 32 … … 37 43 "Returns the total number of objects, across all pages." 38 44 if self._count is None: 39 self._count = len(self.object_list) 45 from django.db.models.query import QuerySet 46 if isinstance(self.object_list, QuerySet): 47 self._count = self.object_list.count() 48 else: 49 self._count = len(self.object_list) 40 50 return self._count 41 51 count = property(_get_count) … … 62 72 page_range = property(_get_page_range) 63 73 64 class QuerySetPaginator(Paginator): 65 """ 66 Like Paginator, but works on QuerySets. 67 """ 68 def _get_count(self): 69 if self._count is None: 70 self._count = self.object_list.count() 71 return self._count 72 count = property(_get_count) 74 QuerySetPaginator = Paginator # For backwards-compatibility. 73 75 74 76 class Page(object): … … 134 136 page_number = int(page_number) + 1 135 137 except ValueError: 136 raise InvalidPage138 raise PageNotAnInteger 137 139 return self.validate_number(page_number) 138 140 … … 141 143 page_number = int(page_number) + 1 142 144 except ValueError: 143 raise InvalidPage145 raise PageNotAnInteger 144 146 return self.page(page_number).object_list 145 147
