如何删除与SQLAlchemy的一对一关系

时间:2015-05-07 21:31:07

标签: python sqlalchemy flask-sqlalchemy

我想创建一个可以为null的自引用关系,可以使用SQLAlchemy删除它。示例模型如下(注意,使用Flask-SQLAlchemy):

class Person(db.Model):

    __tablename__ = 'person'

    id          = db.Column(db.Integer, primary_key=True)
    partner_id  = db.Column(db.Integer, db.ForeignKey('person.id'), nullable=True)
    partner     = db.relationship('Person', uselist=False)

所以把它想象成一个只有一个伙伴的警察桌子,但那个伙伴可能一直都在黑手党中,所以他们失去了他们的伴侣一段时间。没有合作伙伴的警察是好的,至少在数据库方面是这样 - 但我认为在整个演出过程中他们的无伙伴身份意味着很多财产损失。

毋庸置疑,这个问题:sqlalchemy: one-to-one relationship with declarative讨论了如何建立这种关系。问题是你如何消除这种关系?通常使用不同的外键,您可以按如下方式执行此操作:

joe.partner.remove(larry)

其中joelarry都是Person个对象。但是,通过uselist参数,joe.partner现在实际上是Person,没有remove方法。

0 个答案:

没有答案