Skip to content

Commit

Permalink
updated script to just use page_size_kwarg
Browse files Browse the repository at this point in the history
  • Loading branch information
minddust committed Nov 15, 2012
1 parent b17a981 commit 3ae203a
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 14 deletions.
3 changes: 1 addition & 2 deletions docs/api-guide/generic-views.md
Original file line number Diff line number Diff line change
Expand Up @@ -149,8 +149,7 @@ Should be mixed in with [MultipleObjectAPIView].

**Arguments**:

* `allow_page_size_param` - Allows you to overwrite the global settings `ALLOW_PAGE_SIZE_PARAM` for a specific view.
* `page_size_param` - Allows you to customize the page_size parameter. Default is `page_size`.
* `page_size_kwarg` - Allows you to overwrite the global settings `PAGE_SIZE_KWARG` for a specific view. You can also turn it off for a specific view by setting it to `None`. Default is `page_size`.

## CreateModelMixin

Expand Down
8 changes: 6 additions & 2 deletions docs/api-guide/settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -150,10 +150,14 @@ Default: `'accept'`

Default: `'format'`

## ALLOW_PAGE_SIZE_PARAM
## PAGE_SIZE_KWARG

Allows you to globally pass a page size parameter for an individual request.

Default: `'True'`
The name of the GET parameter of views which inherit ListModelMixin for requesting data with an individual page size.

If the value if this setting is `None` the passing a page size is turned off by default.

Default: `'page_size'`

[cite]: http://www.python.org/dev/peps/pep-0020/
4 changes: 1 addition & 3 deletions docs/topics/release-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,7 @@
## Master

* Support for `read_only_fields` on `ModelSerializer` classes.
* Support for `page_size` GET parameter in views which inherit ListModelMixin.
* Support for customizing `page_size` param via `page_size_param` attribute.
* Support for allowing `page_size` param globally (via `ALLOW_PAGE_SIZE_PARAM`) and for individual views (via `allow_page_size_param`)
* Support for individual page sizes per request via `page_size` GET parameter in views which inherit ListModelMixin.

## 2.1.2

Expand Down
11 changes: 5 additions & 6 deletions rest_framework/mixins.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,7 @@ class ListModelMixin(object):
Should be mixed in with `MultipleObjectAPIView`.
"""
empty_error = u"Empty list and '%(class_name)s.allow_empty' is False."
allow_page_size_param = api_settings.ALLOW_PAGE_SIZE_PARAM
page_size_param = 'page_size'
page_size_kwarg = api_settings.PAGE_SIZE_KWARG

def list(self, request, *args, **kwargs):
self.object_list = self.get_filtered_queryset()
Expand All @@ -59,11 +58,11 @@ def list(self, request, *args, **kwargs):
return Response(serializer.data)

def get_paginate_by(self, queryset):
if self.allow_page_size_param:
page_size_param = self.request.QUERY_PARAMS.get(self.page_size_param)
if page_size_param:
if self.page_size_kwarg is not None:
page_size_kwarg = self.request.QUERY_PARAMS.get(self.page_size_kwarg)
if page_size_kwarg:
try:
page_size = int(page_size_param)
page_size = int(page_size_kwarg)
return page_size
except ValueError:
pass
Expand Down
2 changes: 1 addition & 1 deletion rest_framework/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@

'FORMAT_SUFFIX_KWARG': 'format',

'ALLOW_PAGE_SIZE_PARAM': True
'PAGE_SIZE_KWARG': 'page_size'
}


Expand Down

0 comments on commit 3ae203a

Please sign in to comment.