SQLAlchemy将行插入桥接表

时间:2017-07-21 21:12:39

标签: python database sqlalchemy foreign-keys associations

我的问题是如何使用SQLAlchemy 将行插入桥表?我尝试查找similar examples,但由于以下两个原因,无法直接在此处应用它们:桥接表有一个额外的列,并且引用的对象已经存在且我们不想要重建它们。

我们说我有3张桌子:袜子,鞋子和桥梁。桥表有3列:

  • ForeignKey_socks
  • ForeignKey_shoes
  • 整数。

我已经像在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错误。我也尝试过猜测各种其他语法选项,但此时我已经没有想法了。

0 个答案:

没有答案