diff options
Diffstat (limited to 'django')
| -rw-r--r-- | django/core/paginator.py | 25 |
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): |
