假设我有以下多对多关系:
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时,我得到了一个空的“内容”字段。