diff options
| author | Simon Charette <charette.s@gmail.com> | 2015-04-01 15:42:09 -0400 |
|---|---|---|
| committer | Simon Charette <charette.s@gmail.com> | 2015-04-02 15:21:43 -0400 |
| commit | 5bc3123479bd97dc9d8a36fa9a3421a71063d1da (patch) | |
| tree | efe8d154cb1487c318b436f6f5813863e6b042b4 /django/core/serializers/python.py | |
| parent | 147ac856131233b2960503c3cc0d65059a57851a (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.py | 11 |
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): |
