在Flask的开发中,我们势必会遇到两张表之间存在多个外键的情况。例如,现在有两张表,一张表是User,另一张表是Article。一篇文章的作者author_id可以设置外键关联User表,同时文章的审稿人reviewer_id也可以设置外键关联User表。当我们以SQLAchemy多对一(many to one)的设计方法来添加relationship关系映射时,程序会抛出一个AmbiguousForeignKeysError错误,这篇文章我们就来解决这个问题。
出现Error的代码写法
先来看以SQLAchemy多对一的常规设计方法处理这个问题时我的代码写法。
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(64), nullable=False, unique=True)
name = db.Column(db.String(32), nullable=False)
...
class Article(db.Model):
__tablename__ = 'articles'
id = db.Column(db.Integer, primary_key=True)
title = db

本文详细解析了在Flask应用中使用SQLAlchemy处理多对一关系时,遇到的AmbiguousForeignKeysError错误。当同一子表的两个字段分别作为不同父表的外键时,如何正确配置foreign_keys参数以避免混淆。

1446

被折叠的 条评论
为什么被折叠?



