A Document
представляет документ MongoDB (то есть запись в коллекции), класс Document привязан к определенной коллекции.EmbeddedDocument представляет собой структуру, которая вкладывается в документ.
Таким образом, дизайн EmbeddedDocument не прикрепляется ни к какой коллекции, если вы не внедрили его в документ.
Это означает, что вы можете 'Для запроса или сохранения класса EmbeddedDocument необходимо запросить / сохранить родительский документ.
Document.objects
- это точка входа для запроса коллекции, она существует только в классах документа.Вы звоните Course.objects.create
, но Course
является EmbeddedDocument.
Я считаю, что вам нужно изменить свой код на следующий класс StudentSerializer (DocumentSerializer): ...
def create(self, validated_data):
course_data = validated_data.pop('courses')
course = Course(**course_data) # assuming course_data is {course_name: ..., course_fee: ...}
return Student.objects.create(courses=[course], **validated_data)