我的數據庫結構是這樣的(我使用的聲明樣式):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