【发布时间】:2020-08-01 17:28:18
【问题描述】:
我有一个用户和一个分支表,它有多对多的关系。因此我已经定义了关联表。
user_branch_map = db.Table(
'user_branch_map',
db.Column('user_id', db.Integer, db.ForeignKey('user.id'), primary_key=True),
db.Column('branch_id', db.Integer, db.ForeignKey('branch.id'), primary_key=True)
)
user_branch_map 表有以下内容:
# user_id branch_id
1 3 1
2 1 2
3 1 1
4 1 3
5 1 4
如何打印 user_branch_map 的结果而不是 ids 而是用户和分支表的连接结果。我能够打印分支表信息但我还需要用户信息。我尝试了以下方法:
def get(self):
# maptable= User.query.join(user_branch_map).join(Branch). \
# filter((user_branch_map.c.user_id == User.id) & (user_branch_map.c.branch_id == Branch.id)).all()
# print(type(maptable))
# # maptable = db.session.query(user_branch_map).join(User).all()
# # print(maptable)
# for row in maptable:
# print(row)
# branches = db.session.query(Branch).all()
# q = db.session.query(User).options(eagerload(User.branches))
# for u in q.all():
# for c in branches:
# print (c.id, c.name,(c in u.branches))
q = db.session.query(user_branch_map).join(Branch).join(User).all()
print(q)
【问题讨论】:
标签: python python-3.x flask flask-sqlalchemy flask-restful