我在 Python 的 SQLAlchemy 中设置字典集合时遇到了一些问题:
我正在使用表的声明性定义。我的Item
表与表的关系为 1:N Record
。我使用以下代码设置关系:
_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')
现在我想使用Item
s 和Record
s。让我们创建一些对象:
i1 = Item(id='id1')
r = Record(id='mujrecord')
现在我想使用以下代码关联这些对象:
i1.records['source_wav'] = r
但Record r
没有设置name
属性(外键)。有什么解决方案如何自动确保这一点?(我知道在Record
创建过程中设置外键是可行的,但这对我来说并不好)。
非常感谢