Flask-SQLAlchemy:无法访问关联表中的外键

时间:2019-10-21 16:13:00

标签: mysql flask-sqlalchemy python-3.7

我是 flask-sqlalchemy mySQL 的新手。

我有两个名为 groups switchboard 的表。我还有另一个名为 map_switchboard_group 的关联表,它由外键(组和总机的主键)组成。

我正在编写一条路由,该路由将提取组中所有配电盘

现在,我的问题是我通过“ group_uuid”列过滤器查询“ map_switchboard_group”表。我能够获取记录,但是只有只有“ id”(主键)列可以访问,而其余的所有外键列都无法访问,甚至在邮递员中也可以看到。

因此,如果我无法访问switchboard_uuid(外键),那么我将无法获取与此相关的交换机。

我的小组班级:

class Group(db.Model):
    __tablename__ = 'groups'
    group_uuid = db.Column(db.String(100), primary_key=True)
    group_name = db.Column(db.String(50))
    switchboard_count = db.Column(db.Integer, default=0)
    MapSwitchboardGroup = db.relationship('MapSwitchboardGroup', 
    backref='groups')

我的总机类:

class Switchboard(db.Model):
    __tablename__ = 'switchboard'
    switchboard_uuid = db.Column(db.String(100), primary_key=True)
    switchboard_name = db.Column(db.String(50))
    master_mac_id = db.Column(db.String(100), unique=True)
    MapSwitchboardGroup = db.relationship('MapSwitchboardGroup', 
    backref='switchboard')

我的MapSwitchboardGroup(Association)类:

class MapSwitchboardGroup(db.Model):
    __tablename__ = 'map_switchboard_group'
    id = db.Column(db.Integer, primary_key=True)
    group_uuid = db.Column(db.String(100), 
    db.ForeignKey('groups.group_uuid'))
    switchboard_uuid = db.Column(db.String(100), 
    db.ForeignKey('switchboard.switchboard_uuid'))

我要从map_switchboard_group表中获取switchboard_uuid的查询:

switchboard_uuid_list = MapSwitchboardGroup.query.filter_by(group_uuid=group_uuid).all()

预期输出应为:

[ 
  {
    "id": 1,
    "group_uuid": "a2703a41-831f-4c6c-b995-1346bacd2ca3",
    "switchboard_uuid": "aa4fd8e7-9012-4c43-9f8e-baef3e968c57"
  }
]

我得到的实际输出是:

[
   {
     "id": 1
   }
]

0 个答案:

没有答案