From 17a00be830a3b8861be5014e94850f7a8f4ecd25 Mon Sep 17 00:00:00 2001 From: dpetzel Date: Fri, 18 Oct 2013 21:13:20 -0400 Subject: This fix results in models.NullBooleanField rendering as a checkbox in the browsable API --- rest_framework/serializers.py | 1 + 1 file changed, 1 insertion(+) (limited to 'rest_framework/serializers.py') diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 4210d058..f30f1fd8 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -606,6 +606,7 @@ class ModelSerializer(Serializer): models.TextField: CharField, models.CommaSeparatedIntegerField: CharField, models.BooleanField: BooleanField, + models.NullBooleanField: BooleanField, models.FileField: FileField, models.ImageField: ImageField, } -- cgit v1.2.3 From 4a134eefa2c3b71aa1dc6a4ec94716fe41dca8f5 Mon Sep 17 00:00:00 2001 From: Craig de Stigter Date: Mon, 16 Dec 2013 15:51:43 +1300 Subject: Fix expansion of writable nested serializers where the inner fields have source set. --- rest_framework/serializers.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'rest_framework/serializers.py') diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 40caa1f3..d9313342 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -422,7 +422,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 -- cgit v1.2.3 From a439c80cd856f0661cb66003263c454c5108fe0b Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Sat, 21 Dec 2013 21:21:53 +0000 Subject: Less brittle through relationship testing. Closes #1292. --- rest_framework/serializers.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'rest_framework/serializers.py') diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 28a09880..8351b3df 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -713,7 +713,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: -- cgit v1.2.3