From 0e9692bc66ed7cfbbcb4c8031b36e82751685238 Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Fri, 22 Apr 2011 12:03:03 +0000 Subject: [PATCH] Fixed #13689 -- Convert the per_page value to an integer upon initialization of the Paginator class to prevent unpleasant TypeErrors. Thanks, rbanffy, Eric Florenzano and Claude Paroz. git-svn-id: http://code.djangoproject.com/svn/django/trunk@16073 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/core/paginator.py | 4 ++-- tests/regressiontests/pagination_regress/tests.py | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/django/core/paginator.py b/django/core/paginator.py index 3cec491905..bd8757c708 100644 --- a/django/core/paginator.py +++ b/django/core/paginator.py @@ -13,8 +13,8 @@ class EmptyPage(InvalidPage): class Paginator(object): def __init__(self, object_list, per_page, orphans=0, allow_empty_first_page=True): self.object_list = object_list - self.per_page = per_page - self.orphans = orphans + self.per_page = int(per_page) + self.orphans = int(orphans) self.allow_empty_first_page = allow_empty_first_page self._num_pages = self._count = None diff --git a/tests/regressiontests/pagination_regress/tests.py b/tests/regressiontests/pagination_regress/tests.py index 3feeae9083..9f381a5981 100644 --- a/tests/regressiontests/pagination_regress/tests.py +++ b/tests/regressiontests/pagination_regress/tests.py @@ -94,6 +94,11 @@ class PaginatorTests(TestCase): (([1, 2], 1, 1, True), (2, 1, [1])), (([1, 2, 3], 2, 1, True), (3, 1, [1])), ((eleven, 10, 1, True), (11, 1, [1])), + # Non-integer inputs + ((ten, '4', 1, False), (10, 3, [1, 2, 3])), + ((ten, u'4', 1, False), (10, 3, [1, 2, 3])), + ((ten, 4, '1', False), (10, 3, [1, 2, 3])), + ((ten, 4, u'1', False), (10, 3, [1, 2, 3])), ) for params, output in tests: self.check_paginator(params, output)