У меня есть 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)
Как указать, что данные будут удаляться только в том случае, если идентификатор пользователя совпадает с идентификатором из столбца follower_id
?
Одним из решений является то, что я могу удалить ForeignKey
из followed_id
, но мне нужно, чтобы этот столбец был связан с пользователем.