| @@ -586,6 +586,7 @@ class TopLevelDocumentMetaclass(DocumentMetaclass): | ||||
|         collection = ''.join('_%s' % c if c.isupper() else c for c in name).strip('_').lower() | ||||
|  | ||||
|         id_field = None | ||||
|         abstract_base_indexes = [] | ||||
|         base_indexes = [] | ||||
|         base_meta = {} | ||||
|  | ||||
| @@ -605,7 +606,10 @@ class TopLevelDocumentMetaclass(DocumentMetaclass): | ||||
|                         base_meta[key] = base._meta[key] | ||||
|  | ||||
|                 id_field = id_field or base._meta.get('id_field') | ||||
|                 base_indexes += base._meta.get('indexes', []) | ||||
|                 if base._meta.get('abstract', False): | ||||
|                     abstract_base_indexes += base._meta.get('indexes', []) | ||||
|                 else: | ||||
|                     base_indexes += base._meta.get('indexes', []) | ||||
|                 # Propagate 'allow_inheritance' | ||||
|                 if 'allow_inheritance' in base._meta: | ||||
|                     base_meta['allow_inheritance'] = base._meta['allow_inheritance'] | ||||
| @@ -651,8 +655,9 @@ class TopLevelDocumentMetaclass(DocumentMetaclass): | ||||
|             meta['queryset_class'] = manager.queryset_class | ||||
|         new_class.objects = manager | ||||
|  | ||||
|         indicies = meta['indexes'] + abstract_base_indexes | ||||
|         user_indexes = [QuerySet._build_index_spec(new_class, spec) | ||||
|                         for spec in meta['indexes']] + base_indexes | ||||
|                         for spec in indicies] + base_indexes | ||||
|         new_class._meta['indexes'] = user_indexes | ||||
|  | ||||
|         unique_indexes = cls._unique_with_indexes(new_class) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user