我用SQLAlchemy新建了一个表格,绑定了两个外键,大概长下面这样
class Reservations(db.Model,UserMixin):
__tablename__ = "reservations"
id = db.Column(db.Integer, primary_key=True,autoincrement=True)
userid = db.Column(db.Integer,db.ForeignKey('userinfo.userid'))
seatid = db.Column(db.Integer,db.ForeignKey('seat.id'))
states = db.Column(db.String(64),)#状态:待审核
结果唯一的数据成这样了
发现这好像是flask-admin的问题,无法显示这个外键的东西
后来了解到这个,他给的答案很简略,也很模糊
经过我自己的理解,就是需要在你建立的这个表格类里绑定一个外部类,它会自动根据你的__repr__显示到flask-admin中,所以我分别在两个绑定的外部类里添加了以下
def __repr__(self):
return "座位号:%s" % self.number
然后通过这个语句绑定:这里只有relationship后的第一个内容是需要更改的:绑定的是绑定的外键的类(老实说,我也并不清楚这里的是怎么处理,但是肯定flask-admin根据这个找到显示了这个外键的内容)
userinfo = db.relationship('Userinfo', backref=db.backref('proj_set1', lazy='dynamic'))
seatinfo = db.relationship('Seat', backref=db.backref('proj_set2', lazy='dynamic'))
结果显示出来了,并且没有影响数据库中的表格(其实你甚至不用更新到数据库:这一步操作并没有影响到数据库,只是影响到与需要显示的部分)