diff options
| author | Tom Christie | 2015-02-05 14:49:19 +0000 |
|---|---|---|
| committer | Tom Christie | 2015-02-05 14:49:19 +0000 |
| commit | f1e7ce54a1c841bb4cc009e110bebd4435bb5c7e (patch) | |
| tree | 9fb17d22eff223dcce62501470769e8f59455409 /rest_framework/serializers.py | |
| parent | f98f842827c6e79bbaa196482e3c3c549e8999c8 (diff) | |
| parent | c696b0ba0ced9527c8f4ad1bf6f71546d8fa65c2 (diff) | |
| download | django-rest-framework-f1e7ce54a1c841bb4cc009e110bebd4435bb5c7e.tar.bz2 | |
Merge pull request #2496 from jpadilla/version-3.1
Support for Django 1.8 ArrayField
Diffstat (limited to 'rest_framework/serializers.py')
| -rw-r--r-- | rest_framework/serializers.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index a91fe23e..18821958 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -986,15 +986,25 @@ class ModelSerializer(Serializer): # Fields with choices get coerced into `ChoiceField` # instead of using their regular typed field. field_class = ChoiceField + if not issubclass(field_class, ModelField): # `model_field` is only valid for the fallback case of # `ModelField`, which is used when no other typed field # matched to the model field. field_kwargs.pop('model_field', None) + if not issubclass(field_class, CharField) and not issubclass(field_class, ChoiceField): # `allow_blank` is only valid for textual fields. field_kwargs.pop('allow_blank', None) + if postgres_fields and isinstance(model_field, postgres_fields.ArrayField): + child_model_field = model_field.base_field + child_field_class, child_field_kwargs = self.build_standard_field( + 'child', child_model_field + ) + + field_kwargs['child'] = child_field_class(**child_field_kwargs) + return field_class, field_kwargs def build_relational_field(self, field_name, relation_info): @@ -1337,6 +1347,7 @@ if postgres_fields: child = CharField() ModelSerializer.serializer_field_mapping[postgres_fields.HStoreField] = CharMappingField + ModelSerializer.serializer_field_mapping[postgres_fields.ArrayField] = ListField class HyperlinkedModelSerializer(ModelSerializer): |
