sqlmodel many-to-many cascade
У меня есть две модели и промежуточная таблица, связанные отношением many-to-many.
from sqlmodel import SQLModel, Field, Relationship
...
class UserBlockLink(SQLModel, table=True):
user_id: int | None = Field(default=None, foreign_key='user.id', primary_key=True)
block_id: int | None = Field(default=None, foreign_key='block.id', primary_key=True)
class User(UserBase, table=True):
id: int | None = Field(primary_key=True, default=None)
blocks: list[Block] = Relationship(back_populates=None, link_model=UserBlockLink)
class Block(BlockBase, table=True):
id: int | None = Field(primary_key=True, default=None)
name: str
questions: list['Question'] = Relationship(back_populates='block',
sa_relationship_kwargs={"cascade": "all, delete"})
Я хочу чтобы при удалении User или Block происходило удаление записи из таблицы UserBlockLink, которая их связывает. Подскажите, пожалуйста, можно ли это сделать похожим образом как происходит удаление Question при удалении Block, используя cascade?
Пробовал некоторые варианты, но они либо не работают, либо ошибка.
Последнее что прбовал заменить объявление полей таблицы UserBlockLink на вид:
Field(sa_column=Column(Integer, ForeignKey("user.id", ondelete='CASCADE'), default=None, primary_key=True))
. Ошибки нет, но и удаление не происходит