Python sqlalchemy级联和关联对象

Python sqlalchemy级联和关联对象,python,sqlalchemy,Python,Sqlalchemy,我的数据库结构如下(我使用的是声明式风格): 我的问题是,当我从“Character.Inventory”中删除一个“Inventory”对象时,它在会话提交之前不会被更新。例如: >>> torch_inv=character.inventory[0] # Inventory object referred to a torch >>> torch_inv.item, torch_inv.quantity (<Item object, torch>

我的数据库结构如下(我使用的是声明式风格):

我的问题是,当我从“Character.Inventory”中删除一个“Inventory”对象时,它在会话提交之前不会被更新。例如:

>>> torch_inv=character.inventory[0] # Inventory object referred to a torch
>>> torch_inv.item, torch_inv.quantity
(<Item object, torch>, 3)
>>> session.delete(torch_inv)
>>> character.inventory[0]
<Inventory object, torch>
>>火炬库存=字符。库存[0]#库存对象引用火炬
>>>火炬库存项目,火炬库存数量
(, 3)
>>>会话.删除(火炬库存)
>>>字符。库存[0]

我已经看到有一个关系选项“cascade”,但在这种情况下我找不到使其工作的方法。

Session.delete()
方法只是将一个实例标记为“待删除”,所以在不依赖于cascade规则刷新对数据库的更改之前,您的关系不会更改。另一方面,您可以从
字符中删除
库存
实例。库存
集合,然后使用
'delete-orphan'
级联规则将
库存
实例标记为删除。

项目id
引用
字符.id
?)非常感谢,这澄清了我误解的级联选项的作用:)。
>>> torch_inv=character.inventory[0] # Inventory object referred to a torch
>>> torch_inv.item, torch_inv.quantity
(<Item object, torch>, 3)
>>> session.delete(torch_inv)
>>> character.inventory[0]
<Inventory object, torch>