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"],
        }
This commit is contained in:
Clay McClure 2014-05-28 01:31:35 -04:00
parent f099dc6a37
commit 07442a6f84

View File

@ -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))