diff options
| author | Tom Christie | 2013-08-21 21:22:12 +0100 | 
|---|---|---|
| committer | Tom Christie | 2013-08-21 21:22:12 +0100 | 
| commit | 2bcad32dcb57ae9419f6a901e081f0dcdc1a6f87 (patch) | |
| tree | 1438a8796e2aa54bfd5a6d0f3595b450cd95e67b /rest_framework/generics.py | |
| parent | 4338e1e43fb6725cc89f3390943d9b86880bd678 (diff) | |
| download | django-rest-framework-2bcad32dcb57ae9419f6a901e081f0dcdc1a6f87.tar.bz2 | |
If page size query param <= 0, just use default page size.
Closes #1028.
Diffstat (limited to 'rest_framework/generics.py')
| -rw-r--r-- | rest_framework/generics.py | 11 | 
1 files changed, 10 insertions, 1 deletions
| diff --git a/rest_framework/generics.py b/rest_framework/generics.py index 99e9782e..5ecf6310 100644 --- a/rest_framework/generics.py +++ b/rest_framework/generics.py @@ -14,6 +14,15 @@ from rest_framework.settings import api_settings  import warnings +def strict_positive_int(integer_string): +    """ +    Cast a string to a strictly positive integer. +    """ +    ret = int(integer_string) +    if ret <= 0: +        raise ValueError() +    return ret +  def get_object_or_404(queryset, **filter_kwargs):      """      Same as Django's standard shortcut, but make sure to raise 404 @@ -135,7 +144,7 @@ class GenericAPIView(views.APIView):          page_query_param = self.request.QUERY_PARAMS.get(self.page_kwarg)          page = page_kwarg or page_query_param or 1          try: -            page_number = int(page) +            page_number = strict_positive_int(page)          except ValueError:              if page == 'last':                  page_number = paginator.num_pages | 
