问题是sqlalchemy认为
Child是父级的,因为这是您定义关系的地方(当然,不在乎您将其称为“子级”)。
如果在
Parent类上定义关系,它将起作用:
children = relationship("Child", cascade="all,delete", backref="parent")(请注意
"Child"为字符串:使用声明式样式时允许使用,这样您就可以引用尚未定义的类)
您可能还想添加
delete-orphan(
delete导致删除父级时删除子级,
delete-orphan也删除从父级“删除”的所有子级,即使未删除父级也是如此)
编辑:刚刚发现:如果您 确实 想在
Child类上定义关系,则可以这样做,但是您将必须 在backref上
定义级联(通过显式创建backref),如下所示:
parent = relationship(Parent, backref=backref("children", cascade="all,delete"))(暗示
from sqlalchemy.orm import backref)



