Commit 3c31222a by Tom Christie
parents e9eb4720 5f08ec70
...@@ -62,7 +62,7 @@ class BasePaginationSerializer(serializers.Serializer): ...@@ -62,7 +62,7 @@ class BasePaginationSerializer(serializers.Serializer):
super(BasePaginationSerializer, self).__init__(*args, **kwargs) super(BasePaginationSerializer, self).__init__(*args, **kwargs)
results_field = self.results_field results_field = self.results_field
object_serializer = self.opts.object_serializer_class 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): def to_native(self, obj):
""" """
......
...@@ -250,3 +250,32 @@ class TestCustomPaginateByParam(TestCase): ...@@ -250,3 +250,32 @@ class TestCustomPaginateByParam(TestCase):
response = self.view(request).render() response = self.view(request).render()
self.assertEquals(response.data['count'], 13) self.assertEquals(response.data['count'], 13)
self.assertEquals(response.data['results'], self.data[:5]) 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)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment