summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
Diffstat (limited to 'django')
-rw-r--r--django/core/paginator.py25
1 files changed, 21 insertions, 4 deletions
diff --git a/django/core/paginator.py b/django/core/paginator.py
index 131ea0f811..7b3189cc8b 100644
--- a/django/core/paginator.py
+++ b/django/core/paginator.py
@@ -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 = _("…")
+ 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):
+ 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):