Pass init arguments through to serializer from pagination serializer.

Closes #2355.

Normally a serializer won't need these arguments on __init__, but
if a user has customized __init__ they may expect them to be available.
This commit is contained in:
Tom Christie 2015-01-05 16:20:15 +00:00
parent 6fd33ddea9
commit 26ac2656e5
1 changed files with 4 additions and 8 deletions

View File

@ -37,16 +37,13 @@ class PreviousPageField(serializers.Field):
return replace_query_param(url, self.page_field, page)
class DefaultObjectSerializer(serializers.ReadOnlyField):
class DefaultObjectSerializer(serializers.Serializer):
"""
If no object serializer is specified, then this serializer will be applied
as the default.
"""
def __init__(self, source=None, many=None, context=None):
# Note: Swallow context and many kwargs - only required for
# eg. ModelSerializer.
super(DefaultObjectSerializer, self).__init__(source=source)
def to_representation(self, value):
return value
class BasePaginationSerializer(serializers.Serializer):
@ -74,10 +71,9 @@ class BasePaginationSerializer(serializers.Serializer):
list_serializer_class = serializers.ListSerializer
self.fields[results_field] = list_serializer_class(
child=object_serializer(),
child=object_serializer(*args, **kwargs),
source='object_list'
)
self.fields[results_field].bind(field_name=results_field, parent=self)
class PaginationSerializer(BasePaginationSerializer):