diff options
| author | Tom Christie | 2014-09-02 17:41:23 +0100 |
|---|---|---|
| committer | Tom Christie | 2014-09-02 17:41:23 +0100 |
| commit | f2852811f93863f2eed04d51eeb7ef27716b2409 (patch) | |
| tree | 45799932849f81d45d77edc53cb00269465ba0f1 /rest_framework/pagination.py | |
| parent | ec096a1caceff6a4f5c75a152dd1c7bea9ed281d (diff) | |
| download | django-rest-framework-f2852811f93863f2eed04d51eeb7ef27716b2409.tar.bz2 | |
Getting tests passing
Diffstat (limited to 'rest_framework/pagination.py')
| -rw-r--r-- | rest_framework/pagination.py | 36 |
1 files changed, 12 insertions, 24 deletions
diff --git a/rest_framework/pagination.py b/rest_framework/pagination.py index 83ef97c5..478d32b4 100644 --- a/rest_framework/pagination.py +++ b/rest_framework/pagination.py @@ -13,7 +13,7 @@ class NextPageField(serializers.Field): """ page_field = 'page' - def to_native(self, value): + def to_primative(self, value): if not value.has_next(): return None page = value.next_page_number() @@ -28,7 +28,7 @@ class PreviousPageField(serializers.Field): """ page_field = 'page' - def to_native(self, value): + def to_primative(self, value): if not value.has_previous(): return None page = value.previous_page_number() @@ -48,25 +48,11 @@ class DefaultObjectSerializer(serializers.Field): super(DefaultObjectSerializer, self).__init__(source=source) -# class PaginationSerializerOptions(serializers.SerializerOptions): -# """ -# An object that stores the options that may be provided to a -# pagination serializer by using the inner `Meta` class. - -# Accessible on the instance as `serializer.opts`. -# """ -# def __init__(self, meta): -# super(PaginationSerializerOptions, self).__init__(meta) -# self.object_serializer_class = getattr(meta, 'object_serializer_class', -# DefaultObjectSerializer) - - class BasePaginationSerializer(serializers.Serializer): """ A base class for pagination serializers to inherit from, to make implementing custom serializers more easy. """ - # _options_class = PaginationSerializerOptions results_field = 'results' def __init__(self, *args, **kwargs): @@ -75,14 +61,16 @@ class BasePaginationSerializer(serializers.Serializer): """ super(BasePaginationSerializer, self).__init__(*args, **kwargs) results_field = self.results_field - object_serializer = self.opts.object_serializer_class - - if 'context' in kwargs: - context_kwarg = {'context': kwargs['context']} - else: - context_kwarg = {} - - self.fields[results_field] = object_serializer(source='object_list', **context_kwarg) + try: + object_serializer = self.Meta.object_serializer_class + except AttributeError: + object_serializer = DefaultObjectSerializer + + self.fields[results_field] = serializers.ListSerializer( + child=object_serializer(), + source='object_list' + ) + self.fields[results_field].bind(results_field, self, self) # TODO: Support automatic binding class PaginationSerializer(BasePaginationSerializer): |
