diff --git a/mongoengine/queryset/base.py b/mongoengine/queryset/base.py index c2ad027e..485872d7 100644 --- a/mongoengine/queryset/base.py +++ b/mongoengine/queryset/base.py @@ -630,7 +630,10 @@ class BaseQuerySet(object): # We may need to cast to the correct type eg. ListField(EmbeddedDocumentField) doc_field = getattr(self._document._fields.get(field), "field", None) instance = getattr(doc_field, "document_type", False) - if instance: + EmbeddedDocumentField = _import_class('EmbeddedDocumentField') + GenericEmbeddedDocumentField = _import_class('GenericEmbeddedDocumentField') + if instance and isinstance(doc_field, (EmbeddedDocumentField, + GenericEmbeddedDocumentField)): distinct = [instance(**doc) for doc in distinct] return distinct