flask orm级联删除

479 阅读1分钟

Flask中使用ORM时候,如果删除了父记录希望级联删除字对象的话,需要在反向关系中添加cascade='all, delete-orphan'参数

class Person(db.Model) :
    __tablename__ = 'persons'
    id = db.Column(db.Integer, primary_key = True)
    name = db.Column(db.String(32))
    # 添加cascade='all, delete-orphan'参数
    books = db.relationship('Book', backref='device', lazy='dynamic',cascade='all, delete-orphan')
    
class Book(db.Model) :
    __tablename__ = 'books '
    id = db.Column(db.Integer, primary_key = True)-
    name = db.Column(db.String(32))
    # 外键添加ondelete='CASCADE')属性
    device_id = db.Column(db.Integer, db.ForeignKey('persons.id',ondelete='CASCADE'))