aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/serializers.py
diff options
context:
space:
mode:
authorMark Aaron Shirley2013-01-08 08:33:01 -0800
committerMark Aaron Shirley2013-01-08 08:33:01 -0800
commit81691ff9008c69ee02d4a337dc91ddc523c81b6a (patch)
tree99886aa8aacafeec89bc90aa04c616be3429ce5a /rest_framework/serializers.py
parenta897eb5480348838b11fdb428ce0d110e8bc8da1 (diff)
parent431ced66e49905fd76db0c36f62794dc3f42470b (diff)
downloaddjango-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.py9
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
}