在flask-sqlalchemy中创建对象之间的关系时出现IntegrityError

时间:2016-09-01 18:27:59

标签: python sqlalchemy flask-sqlalchemy

我很难为我的乘客预测模型构建地理对象层次结构。

我有以下对象层次结构:

IntegrityError: (sqlite3.IntegrityError) UNIQUE constraint failed: geoobjects.id 
[SQL: 'UPDATE geoobjects SET id=? WHERE geoobjects.id = ?'] [parameters: (2, 1)]

当我尝试将TransportArea对象添加到会话时,出现以下错误:

m

有任何建议,如何解决这个问题?

{{1}} - 是包含带db的烧瓶应用程序的模型的实例。

1 个答案:

答案 0 :(得分:0)

我终于明白它应该如何运作。 当我添加foreign_keys关键字时,我应该为其指定一个列并将其链接到该关系。工作代码如下:

class TransportArea(Geoobject):

    __tablename__ = 'transport_areas'
    id = m.db.Column(m.db.Integer, m.db.ForeignKey('geoobjects.id'), 
                 primary_key=True, autoincrement=True)

    region_id = m.db.Column(m.db.Integer, m.db.ForeignKey('regions.id'))
    region = m.db.relationship('Region', foreign_keys=region_id)

    def __init__(self,
             name: str,
             region: Region
            ):
        self.name = name
        self.region = region