对于不同Models.py文件中的表,Flask-SqlAlchemy与ForeignKey出错

时间:2018-02-13 19:50:49

标签: python sqlalchemy flask-sqlalchemy

我试图创建两个表,每个表来自不同的models.py文件。这两个表之间有一个外键链接。

当下面的两个类位于相同的models.py文件中时,我可以使它正常工作。但是,当我将它们放在单独的文件中时,我收到错误。

我如何调整它以使其按预期工作?我只能找到同一文件中表格的1对多关系示例。

表1代码:

class Person(db.Model):
    __tablename__ = "Person"
    __table_args__ = {'schema': 'example'}
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50))
    addresses = db.relationship('Address', backref='person',
                                lazy='dynamic')

表2代码:

class Address(db.Model):
    __tablename__ = "Address"
    __table_args__ = {'schema': 'example'}
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(50))
    person_id = db.Column(db.Integer, db.ForeignKey('example.Person.id'))

错误:

sqlalchemy.exc.NoReferencedTableError: Foreign key associated with column 'Address.person_id' could not find table 'example.Person' with which to generate a foreign key to target column 'id'

非常感谢

1 个答案:

答案 0 :(得分:0)

在调用db.create_all()

之前导入类

参考:Flask Sqlalchemy : relationships between different modules