Skip to content

Commit d8b238d

Browse files
committed
Refactored the implementation of DynamicField extension for storing data in order
1 parent ffbb2c9 commit d8b238d

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed

mongoengine/dereference.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ def _attach_objects(self, items, depth=0, instance=None, name=None):
202202
as_tuple = isinstance(items, tuple)
203203
iterator = enumerate(items)
204204
data = []
205-
elif type(items) == OrderedDict:
205+
elif isinstance(items, OrderedDict):
206206
is_list = False
207207
iterator = items.iteritems()
208208
data = OrderedDict()

mongoengine/fields.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import time
66
import uuid
77
import warnings
8+
from collections import Mapping
89
from operator import itemgetter
910

1011
from bson import Binary, DBRef, ObjectId, SON
@@ -621,7 +622,7 @@ class DynamicField(BaseField):
621622

622623
def __init__(self, container_class=dict, *args, **kwargs):
623624
self._container_cls = container_class
624-
if not issubclass(self._container_cls, dict):
625+
if not issubclass(self._container_cls, Mapping):
625626
self.error('The class that is specified in `container_class` parameter '
626627
'must be a subclass of `dict`.')
627628

0 commit comments

Comments
 (0)