【发布时间】:2019-05-30 06:31:26
【问题描述】:
我正在尝试使用 flask-SQLAlchemy 描述一个简单的“多对多”关系,但是,映射器似乎没有在我的辅助表上找到外键,即使它们已正确定义。
我正在使用最新版本的 os flask-SQLAlchemy (2.4) 和 SQLite。我尝试了许多代码变体,但仍然没有。记录也无济于事=/
user_permit = db.table('userpermit',
db.Column('permit_id', db.Integer, db.ForeignKey('permit.permit_id'), primary_key=True),
db.Column('user_mail', db.String(128), db.ForeignKey('user.user_mail'), primary_key=True)
)
class User(db.Model):
user_mail = db.Column(db.String(128), primary_key=True)
[...]
permits = db.relationship('Permit', secondary=user_permit, backref='users_permitted')
class Permit(db.Model):
permit_id = db.Column(db.Integer, primary_key=True)
我总是收到相同的错误消息:NoForeignKeysError:无法确定关系 User.permits 上的父/子表之间的连接条件 - 没有通过辅助表“”链接这些表的外键。确保引用列与 ForeignKey 或 ForeignKeyConstraint 相关联,或指定“primaryjoin”和“secondaryjoin”表达式。
它似乎无法识别我的辅助表,因为它显示的是 '',而不是 'userpermit'。
【问题讨论】: