diff --git a/mongoengine/base/fields.py b/mongoengine/base/fields.py index 85a10ff23..ba035f5c9 100644 --- a/mongoengine/base/fields.py +++ b/mongoengine/base/fields.py @@ -162,6 +162,10 @@ def __set__(self, instance, value): for v in value: if isinstance(v, EmbeddedDocument): v._instance = weakref.proxy(instance) + elif isinstance(value, dict): + for v in value.values(): + if isinstance(v, EmbeddedDocument): + v._instance = weakref.proxy(instance) instance._data[self.name] = value