diff options
author | Marcelo Galigniana <marcelogaligniana@gmail.com> | 2023-04-09 22:30:40 -0300 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-04-12 14:02:28 +0200 |
commit | dfc720c521062cdefd64bc48a11838b0fa583439 (patch) | |
tree | 8b38ad33d223e8c56f21a609fe504ac06cef5b92 /django | |
parent | 041b0a359a0a80e147b47c6ae5f11bca9dd3b28a (diff) | |
download | django-dfc720c521062cdefd64bc48a11838b0fa583439.tar.gz |
Fixed #27505 -- Allowed customizing Paginator's error messages.
Diffstat (limited to 'django')
-rw-r--r-- | django/core/paginator.py | 27 |
1 files changed, 22 insertions, 5 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 = _("…") - - 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): |