diff --git a/mongoengine/fields.py b/mongoengine/fields.py index a2250f4c..f7344488 100644 --- a/mongoengine/fields.py +++ b/mongoengine/fields.py @@ -734,6 +734,9 @@ class GenericReferenceField(BaseField): def to_mongo(self, document): if document is None: return None + + if isinstance(document, (dict, SON)): + return document id_field_name = document.__class__._meta['id_field'] id_field = document.__class__._fields[id_field_name]