aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/generics.py
diff options
context:
space:
mode:
authorCraig Blaszczyk2015-01-07 11:41:06 +0000
committerCraig Blaszczyk2015-01-07 11:41:06 +0000
commit9b4177b6ea38de6e86b0fe723834b6ef36af15b3 (patch)
tree3de7ee4886dc396c128143889bce4d7c37fbf283 /rest_framework/generics.py
parent7913947757b0e6bd1b8828db81933c32c498e20a (diff)
downloaddjango-rest-framework-9b4177b6ea38de6e86b0fe723834b6ef36af15b3.tar.bz2
switch to using format strings in error messages; raise NotFound when pagination fails to provide a more useful error message
Diffstat (limited to 'rest_framework/generics.py')
-rw-r--r--rest_framework/generics.py14
1 files changed, 8 insertions, 6 deletions
diff --git a/rest_framework/generics.py b/rest_framework/generics.py
index 680992d7..fe92355d 100644
--- a/rest_framework/generics.py
+++ b/rest_framework/generics.py
@@ -10,6 +10,7 @@ from django.shortcuts import get_object_or_404 as _get_object_or_404
from django.utils import six
from django.utils.translation import ugettext as _
from rest_framework import views, mixins
+from rest_framework.exceptions import NotFound
from rest_framework.settings import api_settings
@@ -119,15 +120,16 @@ class GenericAPIView(views.APIView):
if page == 'last':
page_number = paginator.num_pages
else:
- raise Http404(_("Choose a valid page number. Page numbers must be a whole number, or must be the string 'last'."))
+ raise NotFound(_("Choose a valid page number. Page numbers must be a whole number, or must be the string 'last'."))
+
+ page_number = -1
try:
page = paginator.page(page_number)
except InvalidPage as exc:
- error_format = _('Invalid page (%(page_number)s): %(message)s')
- raise Http404(error_format % {
- 'page_number': page_number,
- 'message': six.text_type(exc)
- })
+ error_format = _('Invalid page ({page_number}): {message}')
+ raise NotFound(error_format.format(
+ page_number=page_number, message=six.text_type(exc)
+ ))
return page