aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Christie2012-12-14 20:11:37 +0000
committerTom Christie2012-12-14 20:11:37 +0000
commit3c31222a415d5454cb458fc397c50ad848db1584 (patch)
tree29d0cc979c501aba650b22b60fd8390eba2b9733
parente9eb47207a7e599c09d9eda4e2f9adfe03ef4542 (diff)
parent5f08ec70e24ee3bdf74eed62def2fd9108af0eb0 (diff)
downloaddjango-rest-framework-3c31222a415d5454cb458fc397c50ad848db1584.tar.bz2
Merge branch 'master' of https://github.com/sunscrapers/django-rest-framework
-rw-r--r--rest_framework/pagination.py2
-rw-r--r--rest_framework/tests/pagination.py29
2 files changed, 30 insertions, 1 deletions
diff --git a/rest_framework/pagination.py b/rest_framework/pagination.py
index d241ade7..7d7bb647 100644
--- a/rest_framework/pagination.py
+++ b/rest_framework/pagination.py
@@ -62,7 +62,7 @@ class BasePaginationSerializer(serializers.Serializer):
super(BasePaginationSerializer, self).__init__(*args, **kwargs)
results_field = self.results_field
object_serializer = self.opts.object_serializer_class
- self.fields[results_field] = object_serializer(source='object_list')
+ self.fields[results_field] = object_serializer(source='object_list', **kwargs)
def to_native(self, obj):
"""
diff --git a/rest_framework/tests/pagination.py b/rest_framework/tests/pagination.py
index 3c65e9db..81d297a1 100644
--- a/rest_framework/tests/pagination.py
+++ b/rest_framework/tests/pagination.py
@@ -250,3 +250,32 @@ class TestCustomPaginateByParam(TestCase):
response = self.view(request).render()
self.assertEquals(response.data['count'], 13)
self.assertEquals(response.data['results'], self.data[:5])
+
+
+class CustomField(serializers.Field):
+ def to_native(self, value):
+ if not 'view' in self.context:
+ raise RuntimeError("context isn't getting passed into custom field")
+ return "value"
+
+
+class BasicModelSerializer(serializers.Serializer):
+ text = CustomField()
+
+
+class TestContextPassedToCustomField(TestCase):
+ def setUp(self):
+ BasicModel.objects.create(text='ala ma kota')
+
+ def test_with_pagination(self):
+ class ListView(generics.ListCreateAPIView):
+ model = BasicModel
+ serializer_class = BasicModelSerializer
+ paginate_by = 1
+
+ self.view = ListView.as_view()
+ request = factory.get('/')
+ response = self.view(request).render()
+
+ self.assertEquals(response.status_code, status.HTTP_200_OK)
+