diff options
| author | Mark Aaron Shirley | 2013-01-08 08:33:01 -0800 |
|---|---|---|
| committer | Mark Aaron Shirley | 2013-01-08 08:33:01 -0800 |
| commit | 81691ff9008c69ee02d4a337dc91ddc523c81b6a (patch) | |
| tree | 99886aa8aacafeec89bc90aa04c616be3429ce5a /rest_framework/serializers.py | |
| parent | a897eb5480348838b11fdb428ce0d110e8bc8da1 (diff) | |
| parent | 431ced66e49905fd76db0c36f62794dc3f42470b (diff) | |
| download | django-rest-framework-81691ff9008c69ee02d4a337dc91ddc523c81b6a.tar.bz2 | |
Merge remote-tracking branch 'upstream/master' into null-one-to-one
Diffstat (limited to 'rest_framework/serializers.py')
| -rw-r--r-- | rest_framework/serializers.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 3391a262..da0af467 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -208,6 +208,11 @@ class BaseSerializer(Field): Converts a dictionary of data into a dictionary of deserialized fields. """ reverted_data = {} + + if data is not None and not isinstance(data, dict): + self._errors['non_field_errors'] = [u'Invalid data'] + return None + for field_name, field in self.fields.items(): field.initialize(parent=self, field_name=field_name) try: @@ -276,7 +281,7 @@ class BaseSerializer(Field): """ if hasattr(data, '__iter__') and not isinstance(data, dict): # TODO: error data when deserializing lists - return (self.from_native(item) for item in data) + return [self.from_native(item, None) for item in data] self._errors = {} if data is not None or files is not None: @@ -428,7 +433,7 @@ class ModelSerializer(Serializer): # TODO: filter queryset using: # .using(db).complex_filter(self.rel.limit_choices_to) kwargs = { - 'null': model_field.null, + 'null': model_field.null or model_field.blank, 'queryset': model_field.rel.to._default_manager } |
