From 07442a6f84d657a364332f1f11144484da33eded Mon Sep 17 00:00:00 2001 From: Clay McClure Date: Wed, 28 May 2014 01:31:35 -0400 Subject: [PATCH] Allow index specs to be composed from raw strings This allows an index spec to reference arbitrary keys of a DictField: class MyDoc(Document): frobs = DictField() meta = { "indexes": ["frobs.fmep", "frobs.gorp"], } --- mongoengine/base/document.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/mongoengine/base/document.py b/mongoengine/base/document.py index f5eae8ff..09b7dbbc 100644 --- a/mongoengine/base/document.py +++ b/mongoengine/base/document.py @@ -666,8 +666,14 @@ class BaseDocument(object): fields = [] else: fields = cls._lookup_field(parts) - parts = [field if field == '_id' else field.db_field - for field in fields] + parts = [] + for field in fields: + try: + if field != "_id": + field = field.db_field + except AttributeError: + pass + parts.append(field) key = '.'.join(parts) index_list.append((key, direction))