aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/serializers.py
diff options
context:
space:
mode:
authorTom Christie2013-12-23 09:48:59 +0000
committerTom Christie2013-12-23 09:48:59 +0000
commit52686420f4bf866064ee88a15903665f14289394 (patch)
tree41ea7b0d4863092f996f63de14e678a1c74a7a3a /rest_framework/serializers.py
parent9c41c007afc71c899306bcb02e40bdfc36b09146 (diff)
parent83b31e7ea298a8948e9a76c9b971845ea0052b3c (diff)
downloaddjango-rest-framework-52686420f4bf866064ee88a15903665f14289394.tar.bz2
Merge branch 'bennbollay-patch-1' into 2.4.0
Conflicts: .travis.yml docs/api-guide/routers.md rest_framework/compat.py tox.ini
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 9c27717f..fa935306 100644
--- a/rest_framework/serializers.py
+++ b/rest_framework/serializers.py
@@ -416,7 +416,9 @@ class BaseSerializer(WritableField):
if self.source == '*':
if value:
- into.update(value)
+ reverted_data = self.restore_fields(value, {})
+ if not self._errors:
+ into.update(reverted_data)
else:
if value in (None, ''):
into[(self.source or field_name)] = None
@@ -602,6 +604,7 @@ class ModelSerializer(Serializer):
models.TextField: CharField,
models.CommaSeparatedIntegerField: CharField,
models.BooleanField: BooleanField,
+ models.NullBooleanField: BooleanField,
models.FileField: FileField,
models.ImageField: ImageField,
}
@@ -695,7 +698,9 @@ class ModelSerializer(Serializer):
is_m2m = isinstance(relation.field,
models.fields.related.ManyToManyField)
- if is_m2m and not relation.field.rel.through._meta.auto_created:
+ if (is_m2m and
+ hasattr(relation.field.rel, 'through') and
+ not relation.field.rel.through._meta.auto_created):
has_through_model = True
if nested: