summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas NoƩ <nicolas@niconoe.eu>2018-05-09 12:25:39 +0200
committerTim Graham <timograham@gmail.com>2018-05-09 09:28:52 -0400
commitc629d4e9562e7b04b39ca5224af6fd08a3cb14bc (patch)
tree9ace43b77f618df32315812a17005fa00a164c3c
parent2134e7d4391c2279f6cfddadc2a0c1195cec16e4 (diff)
Fixed #29389 -- Made Paginator reject non-integer page numbers of type float.
-rw-r--r--django/core/paginator.py2
-rw-r--r--tests/pagination/tests.py2
2 files changed, 4 insertions, 0 deletions
diff --git a/django/core/paginator.py b/django/core/paginator.py
index bc41ddb914..4af80a26f2 100644
--- a/django/core/paginator.py
+++ b/django/core/paginator.py
@@ -35,6 +35,8 @@ class Paginator:
def validate_number(self, number):
"""Validate the given 1-based page number."""
try:
+ if isinstance(number, float) and not number.is_integer():
+ raise ValueError
number = int(number)
except (TypeError, ValueError):
raise PageNotAnInteger(_('That page number is not an integer'))
diff --git a/tests/pagination/tests.py b/tests/pagination/tests.py
index 5c2e7db197..8be81240e8 100644
--- a/tests/pagination/tests.py
+++ b/tests/pagination/tests.py
@@ -120,6 +120,8 @@ class PaginationTests(unittest.TestCase):
paginator.validate_number(None)
with self.assertRaises(PageNotAnInteger):
paginator.validate_number('x')
+ with self.assertRaises(PageNotAnInteger):
+ paginator.validate_number(1.2)
def test_float_integer_page(self):
paginator = Paginator([1, 2, 3], 2)