Fixed infinite recursion bug in _geo_indices()

Fixes #213  Thanks to joshink for the bug report
This commit is contained in:
Ross Lawley
2011-06-30 10:32:05 +01:00
parent d51d95a28e
commit 8e1d701c27
2 changed files with 19 additions and 2 deletions

View File

@@ -754,11 +754,16 @@ class BaseDocument(object):
return set_data, unset_data
@classmethod
def _geo_indices(cls):
def _geo_indices(cls, inspected_classes=None):
inspected_classes = inspected_classes or []
geo_indices = []
inspected_classes.append(cls)
for field in cls._fields.values():
if hasattr(field, 'document_type'):
geo_indices += field.document_type._geo_indices()
field_cls = field.document_type
if field_cls in inspected_classes:
continue
geo_indices += field_cls._geo_indices(inspected_classes)
elif field._geo_index:
geo_indices.append(field)
return geo_indices