Я создаю вложенные встроенные документы с двумя уровнями (встроенный документ внутри встроенного документа)
Вот код:
from mongoengine import *
class CommentDetails(EmbeddedDocument):
name = StringField()
category = StringField()
class Comment(EmbeddedDocument):
content = StringField()
comments = ListField(EmbeddedDocumentField(CommentDetails))
class Page(Document):
comments = ListField(EmbeddedDocumentField(Comment))
comment1 = Comment(content='Good work!',comments=CommentDetails(name='John',category='fashion'))
comment2 = Comment(content='Nice article!',comments=CommentDetails(name='Mike',category='tech'))
page = Page(comments=[comment1, comment2])
page.save()
При запуске выдается следующая ошибка:
ValidationError: ValidationError (Page: None) (comments. В поле списка могут использоваться только списки и кортежи> 1.comments. В поле списка могут использоваться только списки и кортежи: ['comments'])
Я пытался с одним вложенным документом, и он работает, также, если я не использую EmbeddedDocuments для списка, он работает. но не уверен, почему он не работает для нескольких уровней списка встроенных документов.