我的问题是如何使用SQLAlchemy 将行插入桥表?我尝试查找similar examples,但由于以下两个原因,无法直接在此处应用它们:桥接表有一个额外的列,并且引用的对象已经存在且我们不想要重建它们。
我们说我有3张桌子:袜子,鞋子和桥梁。桥表有3列:
我已经像在tutorials中那样定义了数据库模式(参见Many To Many -section),其中" normal"表被定义为类和桥表作为表:
bridge = Table(...)
class Sock(Base): ...
class Shoe(Base): ...
我用psql检查了数据库架构是否正确创建。我可以插入袜子和鞋子。当我尝试在桥接表中插入内容时出现错误。
首先,我尝试将行插入任何普通表:
link = bridge(...)
db.add(link)
db.commit()
提交行产生TypeError: Table object is not callable
。我假设这是因为没有类声明定义了桥。我找到了另一个例子,他们也为桥表声明了一个类,所以我尝试了。如果我声明一个类而不是"表",我的其他类因Unresolved reference 'bridge'
而中断。声明类的顺序并不重要。如果我同时声明一个表和一个类,我会收到already defined
错误。我也尝试过猜测各种其他语法选项,但此时我已经没有想法了。