如何查询Flask-SQLAlchemy多对多关系,以便Flask-RESTPlus正确编排完整对象列表?

时间:2019-03-21 16:58:06

标签: python flask sqlalchemy flask-sqlalchemy flask-restplus

假设我有以下多对多关系:

model_a_to_model_b = db.Table(
    'model_a_to_model_b',
    db.Column('model_a_id', db.Integer, db.ForeignKey('model_a.id'), primary_key=True),
    db.Column('model_b_id', db.Integer, db.ForeignKey('model_b.id'), primary_key=True)
)

class ModelB(db.Model):
    __tablename__ = "ModelB"
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    content = db.Column(db.String)

class ModelA(db.Model):
    __tablename__ = "ModelA"
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    model_bs = db.relationship('ModelB', secondary=model_a__to_model_b,
                             backref=db.backref('model_as'))

如何查询ModelA以获得某种输出,可以将其编组为此类json结构:

class ModelBDto:
    api = Namespace('model_b')
    model_b = api.model('model_b', {
        'id': fields.Integer(readOnly=True),
        'content': fields.String(),
    })

class ModelADto:
    api = Namespace('model_a')
    model_a = api.model('model_a', {
        'id': fields.Integer(readOnly=True),
        'model_bs': fields.Nested(ModelBDto.model_b),
    })

不幸的是,当我尝试从数据库中获取所有模型A时,我得到了一个空的“内容”字段。

0 个答案:

没有答案