summaryrefslogtreecommitdiff
path: root/django/core/serializers/python.py
diff options
context:
space:
mode:
authorSimon Charette <charette.s@gmail.com>2015-04-01 15:42:09 -0400
committerSimon Charette <charette.s@gmail.com>2015-04-02 15:21:43 -0400
commit5bc3123479bd97dc9d8a36fa9a3421a71063d1da (patch)
treeefe8d154cb1487c318b436f6f5813863e6b042b4 /django/core/serializers/python.py
parent147ac856131233b2960503c3cc0d65059a57851a (diff)
Fixed #24558 -- Made dumpdata mapping ordering deterministic.
Thanks to gfairchild for the report and Claude for the review.
Diffstat (limited to 'django/core/serializers/python.py')
-rw-r--r--django/core/serializers/python.py11
1 files changed, 5 insertions, 6 deletions
diff --git a/django/core/serializers/python.py b/django/core/serializers/python.py
index 7caff52066..d209f7ebd0 100644
--- a/django/core/serializers/python.py
+++ b/django/core/serializers/python.py
@@ -5,6 +5,8 @@ other serializers.
"""
from __future__ import unicode_literals
+from collections import OrderedDict
+
from django.apps import apps
from django.conf import settings
from django.core.serializers import base
@@ -28,20 +30,17 @@ class Serializer(base.Serializer):
pass
def start_object(self, obj):
- self._current = {}
+ self._current = OrderedDict()
def end_object(self, obj):
self.objects.append(self.get_dump_object(obj))
self._current = None
def get_dump_object(self, obj):
- data = {
- "model": force_text(obj._meta),
- "fields": self._current,
- }
+ data = OrderedDict([('model', force_text(obj._meta))])
if not self.use_natural_primary_keys or not hasattr(obj, 'natural_key'):
data["pk"] = force_text(obj._get_pk_val(), strings_only=True)
-
+ data['fields'] = self._current
return data
def handle_field(self, obj, field):