我的数据库结构是这样的(我使用的声明样式):SQLAlchemy的级联和关联对象
class Character(Base):
__tablename__="characters"
id = Column(Integer, primary_key=True)
name = Column(String)
player = Column(String)
inventory = relation(Inventory)
class Item(Base):
__tablename__="items"
id = Column(Integer, primary_key=True)
name = Column(String)
class Inventory(Base):
__tablename__="inventory"
id = Column(Integer, primary_key=True)
char_id = Column(Integer, ForeignKey("characters.id"))
item_id = Column(Integer, ForeignKey("characters.id"))
quantity = Column(Integer)
item = relation(Item)
我的问题是,当我从“Character.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>
我见过有一个关系的选择“层叠”,但我不能找到一种方法,使其在这种情况下工作。
('item_id'引用'characters.id'?) – bobince 2010-01-04 15:21:29