|
@@ -28,13 +28,30 @@ class Paginator:
|
|
|
# Translators: String used to replace omitted page numbers in elided page
|
|
|
# range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
|
|
|
ELLIPSIS = _("…")
|
|
|
-
|
|
|
- def __init__(self, object_list, per_page, orphans=0, allow_empty_first_page=True):
|
|
|
+ default_error_messages = {
|
|
|
+ "invalid_page": _("That page number is not an integer"),
|
|
|
+ "min_page": _("That page number is less than 1"),
|
|
|
+ "no_results": _("That page contains no results"),
|
|
|
+ }
|
|
|
+
|
|
|
+ def __init__(
|
|
|
+ self,
|
|
|
+ object_list,
|
|
|
+ per_page,
|
|
|
+ orphans=0,
|
|
|
+ allow_empty_first_page=True,
|
|
|
+ error_messages=None,
|
|
|
+ ):
|
|
|
self.object_list = object_list
|
|
|
self._check_object_list_is_ordered()
|
|
|
self.per_page = int(per_page)
|
|
|
self.orphans = int(orphans)
|
|
|
self.allow_empty_first_page = allow_empty_first_page
|
|
|
+ self.error_messages = (
|
|
|
+ self.default_error_messages
|
|
|
+ if error_messages is None
|
|
|
+ else self.default_error_messages | error_messages
|
|
|
+ )
|
|
|
|
|
|
def __iter__(self):
|
|
|
for page_number in self.page_range:
|
|
@@ -47,11 +64,11 @@ class Paginator:
|
|
|
raise ValueError
|
|
|
number = int(number)
|
|
|
except (TypeError, ValueError):
|
|
|
- raise PageNotAnInteger(_("That page number is not an integer"))
|
|
|
+ raise PageNotAnInteger(self.error_messages["invalid_page"])
|
|
|
if number < 1:
|
|
|
- raise EmptyPage(_("That page number is less than 1"))
|
|
|
+ raise EmptyPage(self.error_messages["min_page"])
|
|
|
if number > self.num_pages:
|
|
|
- raise EmptyPage(_("That page contains no results"))
|
|
|
+ raise EmptyPage(self.error_messages["no_results"])
|
|
|
return number
|
|
|
|
|
|
def get_page(self, number):
|