2016-04-18 51 views
3

我正在使用棉花糖 - sqlalchemy與瓶擴展名,並試圖使用我的ModelSchema類的加載方法。 我有這樣的事情:如何在棉花糖 - sqlalchemy中使用嵌套對象加載

db = SQLAlchemy() 
ma = Marshmallow() 

#I'm using Application Factorie 
def create_app(): 
    ... 
    db.init_app(app) 
    ma.init_app(app) 
    ... 
    return app 


class BaseSchema(ma.ModelSchema):  
    class Meta: 
     sqla_session = db.session 

class Parent(db.Model):  
    id = db.Column(db.Integer, primary_key=True) 
    name = db.Column(db.String(45), nullable=False) 
    child_id = db.Column(db.Integer, db.ForeignKey("child.id"), nullable=False) 
    child = db.relationship("Child") 

class ParentSchema(BaseSchema): 
    class Meta: 
     model = Parent 
    child = ma.Nested("ChildSchema") 

class Child(db.Model): 
    id = db.Column(db.Integer, primary_key=True) 
    name = db.Column(db.String(25), nullable=False) 

class ChildSchema(BaseSchema): 
    class Meta: 
     model = Child 

總體作品完美,查詢,插入......但是當我嘗試像數據的基礎上與現有的子加載新的父對象:new_parent = ParentSchema().load({'name':'Foo', 'child' : {'id':1,'name':'Bar'} })返回它AttributeError: 'DummySession' object has no attribute 'query'

我在做什麼錯了?

回答