From 34d08ce8eff224844b57b2020722b830d7821b4b Mon Sep 17 00:00:00 2001 From: Ross Lawley Date: Wed, 11 Jul 2012 15:23:27 +0100 Subject: [PATCH] Only dereference fields than need it Fixes MongoEngine/mongoengine#31 --- mongoengine/base.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mongoengine/base.py b/mongoengine/base.py index 8ed8dc40..a8b89ef4 100644 --- a/mongoengine/base.py +++ b/mongoengine/base.py @@ -267,8 +267,10 @@ class ComplexBaseField(BaseField): if instance is None: # Document class being used rather than a document object return self - - if not self._dereference and instance._initialised: + from fields import GenericReferenceField, ReferenceField + dereference = self.field is None or isinstance(self.field, + (GenericReferenceField, ReferenceField)) + if not self._dereference and instance._initialised and dereference: from dereference import DeReference self._dereference = DeReference() # Cached instance._data[self.name] = self._dereference(