From 7b885ee0d3256eff0481916a29f1729faf82364f Mon Sep 17 00:00:00 2001 From: Ross Lawley Date: Mon, 30 Jun 2014 10:29:28 +0100 Subject: [PATCH] Fix StrictDict repr --- mongoengine/base/datastructures.py | 2 ++ mongoengine/base/document.py | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/mongoengine/base/datastructures.py b/mongoengine/base/datastructures.py index dc92d183..48414f21 100644 --- a/mongoengine/base/datastructures.py +++ b/mongoengine/base/datastructures.py @@ -240,6 +240,8 @@ class StrictDict(object): if allowed_keys not in cls._classes: class SpecificStrictDict(cls): __slots__ = allowed_keys_tuple + def __repr__(self): + return "{%s}" % ', '.join('"{!s}": {!r}'.format(k,v) for (k,v) in self.iteritems()) cls._classes[allowed_keys] = SpecificStrictDict return cls._classes[allowed_keys] diff --git a/mongoengine/base/document.py b/mongoengine/base/document.py index 17ff5519..9ab66721 100644 --- a/mongoengine/base/document.py +++ b/mongoengine/base/document.py @@ -56,9 +56,9 @@ class BaseDocument(object): signals.pre_init.send(self.__class__, document=self, values=values) if self.STRICT and not self._dynamic: - self._data = StrictDict.create(allowed_keys=self._fields.keys())() + self._data = StrictDict.create(allowed_keys=self._fields_ordered)() else: - self._data = SemiStrictDict.create(allowed_keys=self._fields.keys())() + self._data = SemiStrictDict.create(allowed_keys=self._fields_ordered)() self._dynamic_fields = SON()