Fixes to circular references.

Removes infinite looping
refs #294
This commit is contained in:
Ross Lawley
2011-09-29 14:07:30 -07:00
parent 3799f27734
commit 823cf421fa
2 changed files with 63 additions and 2 deletions

View File

@@ -33,13 +33,15 @@ class DeReference(object):
items = [i for i in items]
self.max_depth = max_depth
doc_type = None
if instance and instance._fields:
doc_type = instance._fields[name].field
if isinstance(doc_type, ReferenceField):
doc_type = doc_type.document_type
if all([i.__class__ == doc_type for i in items]):
return items
self.reference_map = self._find_references(items)
self.object_map = self._fetch_objects(doc_type=doc_type)