aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/generics.py
diff options
context:
space:
mode:
authorJacek Bzdak2013-10-22 13:13:01 +0200
committerJacek Bzdak2013-10-22 13:13:01 +0200
commit8fffc346c1c4fe6e634ce60bd0371217b07ecf5c (patch)
treed9f52a4b886d574039cdcffd72266df49c1b6a8c /rest_framework/generics.py
parent25c9d552c05527f4b8b257d59cd7be39005f3668 (diff)
parentfa87fac61b87858e80788fc233591fa11dbc18e7 (diff)
downloaddjango-rest-framework-8fffc346c1c4fe6e634ce60bd0371217b07ecf5c.tar.bz2
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'rest_framework/generics.py')
-rw-r--r--rest_framework/generics.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/rest_framework/generics.py b/rest_framework/generics.py
index 4f134bce..6d204cf5 100644
--- a/rest_framework/generics.py
+++ b/rest_framework/generics.py
@@ -54,6 +54,7 @@ class GenericAPIView(views.APIView):
# If you want to use object lookups other than pk, set this attribute.
# For more complex lookup requirements override `get_object()`.
lookup_field = 'pk'
+ lookup_url_kwarg = None
# Pagination settings
paginate_by = api_settings.PAGINATE_BY
@@ -147,8 +148,8 @@ 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 = strict_positive_int(page)
- except ValueError:
+ page_number = paginator.validate_number(page)
+ except InvalidPage:
if page == 'last':
page_number = paginator.num_pages
else:
@@ -278,9 +279,11 @@ class GenericAPIView(views.APIView):
pass # Deprecation warning
# Perform the lookup filtering.
+ # Note that `pk` and `slug` are deprecated styles of lookup filtering.
+ lookup_url_kwarg = self.lookup_url_kwarg or self.lookup_field
+ lookup = self.kwargs.get(lookup_url_kwarg, None)
pk = self.kwargs.get(self.pk_url_kwarg, None)
slug = self.kwargs.get(self.slug_url_kwarg, None)
- lookup = self.kwargs.get(self.lookup_field, None)
if lookup is not None:
filter_kwargs = {self.lookup_field: lookup}