_dynamic field updates - fixed pickling and creation order

Dynamic fields are ordered based on creation and stored in _fields_ordered (#396)
Fixed pickling dynamic documents `_dynamic_fields` (#387)
This commit is contained in:
Ross Lawley
2013-07-10 10:57:24 +00:00
parent f26f1a526c
commit af86aee970
9 changed files with 90 additions and 41 deletions

View File

@@ -460,11 +460,8 @@ class Document(BaseDocument):
else:
msg = "Reloaded document has been deleted"
raise OperationError(msg)
for field in self._fields:
for field in self._fields_ordered:
setattr(self, field, self._reload(field, obj[field]))
if self._dynamic:
for name in self._dynamic_fields.keys():
setattr(self, name, self._reload(name, obj._data[name]))
self._changed_fields = obj._changed_fields
self._created = False
return obj