2016-09-26 4 views
0

marshmallow_mongoengine에서 ReferenceFields를 어떻게 참조하지 않습니까? 예를 들어, dump_data = author_schema.dump(author).data은 더 유용한 응답 {title='Fight Club', author=author} 대신에 '5578726b7a58012298a5a7e2'이됩니다.marshmallow-mongoengine의 참조 필드 작업

from marshmallow_mongoengine import ModelSchema 

class AuthorSchema(ModelSchema): 
    class Meta: 
     model = Author 

class BookSchema(ModelSchema): 
    class Meta: 
     model = Book 

author_schema = AuthorSchema() 

author = Author(name='Chuck Paluhniuk').save() 
book = Book(title='Fight Club', author=author).save() 

dump_data = author_schema.dump(author).data 
# {'id': 1, 'name': 'Chuck Paluhniuk', 'books': ['5578726b7a58012298a5a7e2']} 

author_schema.load(dump_data).data 
# <Author(name='Chuck Paluhniuk')> 

답변

2

Nesting schemas

from marshmallow.fields import Nested 

class AuthorSchema(ModelSchema): 
    class Meta: 
     model = Author   
    books = Nested("BookSchema",many=True)