From 320891cc1cc4c1842646fdb542a5bcd9c2cd69af Mon Sep 17 00:00:00 2001 From: Ryan P Kilby Date: Tue, 21 Jan 2020 10:10:47 -0800 Subject: [PATCH] Ensure field name ordering consistency --- rest_framework/serializers.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index ea6a40f8f..c1cea1e83 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -1508,16 +1508,16 @@ class ModelSerializer(Serializer): # which may map onto a model field. Any dotted field name lookups # cannot map to a field, and must be a traversal, so we're not # including those. - field_sources = { - field.field_name: field.source for field in self._writable_fields + field_sources = OrderedDict( + (field.field_name, field.source) for field in self._writable_fields if (field.source != '*') and ('.' not in field.source) - } + ) # Special Case: Add read_only fields with defaults. - field_sources.update({ - field.field_name: field.source for field in self.fields.values() + field_sources.update(OrderedDict( + (field.field_name, field.source) for field in self.fields.values() if (field.read_only) and (field.default != empty) and (field.source != '*') and ('.' not in field.source) - }) + )) # Invert so we can find the serializer field names that correspond to # the model field names in the unique_together sets. This also allows