parent
700e2cd93d
commit
c775c0a80c
@ -5,6 +5,8 @@ Changelog
|
||||
Changes in dev
|
||||
==============
|
||||
|
||||
- Fixed issue creating indexes with recursive embedded documents
|
||||
- Fixed recursive lookup in _unique_with_indexes
|
||||
- Fixed passing ComplexField defaults to constructor for ReferenceFields
|
||||
- Fixed validation of DictField Int keys
|
||||
- Added optional cascade saving
|
||||
|
@ -687,7 +687,7 @@ class TopLevelDocumentMetaclass(DocumentMetaclass):
|
||||
unique_indexes.append(index)
|
||||
|
||||
# Grab any embedded document field unique indexes
|
||||
if field.__class__.__name__ == "EmbeddedDocumentField":
|
||||
if field.__class__.__name__ == "EmbeddedDocumentField" and field.document_type != new_class:
|
||||
field_namespace = "%s." % field_name
|
||||
unique_indexes += cls._unique_with_indexes(field.document_type,
|
||||
field_namespace)
|
||||
|
@ -751,6 +751,17 @@ class DocumentTest(unittest.TestCase):
|
||||
post1.save()
|
||||
BlogPost.drop_collection()
|
||||
|
||||
def test_recursive_embedded_objects_dont_break_indexes(self):
|
||||
|
||||
class RecursiveObject(EmbeddedDocument):
|
||||
obj = EmbeddedDocumentField('self')
|
||||
|
||||
class RecursiveDocument(Document):
|
||||
recursive_obj = EmbeddedDocumentField(RecursiveObject)
|
||||
|
||||
info = RecursiveDocument.objects._collection.index_information()
|
||||
self.assertEqual(info.keys(), ['_id_', '_types_1'])
|
||||
|
||||
def test_geo_indexes_recursion(self):
|
||||
|
||||
class User(Document):
|
||||
|
Loading…
x
Reference in New Issue
Block a user