SQLAlchemy删除多对多记录

时间:2019-06-02 21:22:41

标签: python sqlalchemy flask-sqlalchemy

我有2个相互关联的表(用户,关注者)。

现在,删除用户后,具有相似用户的所有数据将从“关注者”表中删除。

用户模型:

class User():
    id = Column(Integer, primary_key=True)
    username = Column(String(32), nullable=False, unique=True)
    followed = relationship(
        'User',
        secondary='followers',
        primaryjoin='User.id == followers.c.follower_id',
        secondaryjoin='User.id == followers.c.followed_id',
        backref=backref('followers', lazy='dynamic'),
        lazy='dynamic',
        cascade='all, delete, delete-orphan',
        single_parent=True,
    )

跟随者模型:

class Followers():
    id = Column(Integer, primary_key=True)
    follower_id = Column(Integer, ForeignKey('users.id'), nullable=False)
    followed_id = Column(Integer, ForeignKey('users.id'), nullable=False)

仅当用户ID与follower_id列中的ID相匹配时,如何才能指定删除数据?

一种解决方案是,我可以从ForeignKey中删除followed_id,但是我需要将此列与用户相关。

0 个答案:

没有答案