SQLAlchemy关系级联删除

Pet*_*ras 5 python sqlalchemy flask-sqlalchemy

我已经阅读了文档,但我似乎无法理解如何正确配置我的模型.这是一个非常简单的电视节目数据库,我想配置它,以便剧集必须有一个相应的Show父实例存在于数据库中.每当删除一个节目时,我都希望它的所有剧集都被级联删除.

TL; DR:show.delete() - >删除ep.show_id == show.id的所有剧集ep

我该如何做到这一点?

class Show(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(128), nullable=False)

class Episode(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(256), nullable=False)

    # relationships
    show_id = db.Column(db.Integer, db.ForeignKey('show.id'), nullable=False)
    show = db.relationship('Show',
                           backref=db.backref('episodes'),
                           lazy='joined')
Run Code Online (Sandbox Code Playgroud)

jav*_*vex 8

使用级联:

    show = db.relationship('Show',
                           backref=db.backref('episodes', cascade="all, delete-orphan"),
                           lazy='joined')
Run Code Online (Sandbox Code Playgroud)