【发布时间】:2010-10-22 02:03:53
【问题描述】:
我在 Python 的 SQLAlchemy 中设置字典集合时遇到了一些问题:
我正在使用表的声明性定义。我有Item 表与Record 表的1:N 关系。我使用以下代码设置了关系:
_Base = declarative_base()
class Record(_Base):
__tablename__ = 'records'
item_id = Column(String(M_ITEM_ID), ForeignKey('items.id'))
id = Column(String(M_RECORD_ID), primary_key=True)
uri = Column(String(M_RECORD_URI))
name = Column(String(M_RECORD_NAME))
class Item(_Base):
__tablename__ = 'items'
id = Column(String(M_ITEM_ID), primary_key=True)
records = relation(Record, collection_class=column_mapped_collection(Record.name), backref='item')
现在我想使用Items 和Records。让我们创建一些对象:
i1 = Item(id='id1')
r = Record(id='mujrecord')
现在我想使用以下代码关联这些对象:
i1.records['source_wav'] = r
但是Record r 没有设置name 属性(外键)。有什么解决方案如何自动确保这一点? (我知道在Record 创建过程中设置外键是可行的,但这对我来说并不好)。
非常感谢
【问题讨论】:
标签: python sqlalchemy