From 919f221be9738dc278f08c31c7421267bfd4f2de Mon Sep 17 00:00:00 2001 From: Chuan-Heng Hsiao Date: Thu, 11 Jan 2018 07:28:25 -0500 Subject: [PATCH] defensive programming for v as an instance of DBRef when accessing v.collection in dereference --- mongoengine/dereference.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongoengine/dereference.py b/mongoengine/dereference.py index 7fe34e43..18b365cc 100644 --- a/mongoengine/dereference.py +++ b/mongoengine/dereference.py @@ -237,7 +237,7 @@ class DeReference(object): elif isinstance(v, (dict, list, tuple)) and depth <= self.max_depth: item_name = '%s.%s' % (name, k) if name else name data[k] = self._attach_objects(v, depth - 1, instance=instance, name=item_name) - elif hasattr(v, 'id'): + elif isinstance(v, DBRef) and hasattr(v, 'id'): data[k] = self.object_map.get((v.collection, v.id), v) if instance and name: