代码之家  ›  专栏  ›  技术社区  ›  spitz

在蒙古棉花糖中使用参考字段

  •  0
  • spitz  · 技术社区  · 8 年前

    如何取消引用marshmallow_mongoengine中的ReferenceFields?例如 dump_data = author_schema.dump(author).data 中的个结果 '5578726b7a58012298a5a7e2' {title='Fight Club', author=author} .

    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')>
    
    1 回复  |  直到 8 年前
        1
  •  6
  •   Jair Perrut    8 年前

    Nesting schemas

    from marshmallow.fields import Nested
    
    class AuthorSchema(ModelSchema):
        class Meta:
            model = Author        
        books = Nested("BookSchema",many=True)