端口和电路上的VLAN ID列表,如何建立关系模型?

时间:2017-06-26 14:39:03

标签: sqlalchemy

我正在尝试为每个网络端口以及每个网络电路保存一个VLAN ID列表。列表本身就是这样的:

class ListOfVlanIds(Base):
    __tablename__ = 'listofvlanids'
    id = Column(Integer, primary_key=True)
    listofvlanids_name = Column('listofvlanids_name', String, nullable = True)

然后我有一个端口

class Port(Base):
    __tablename__ = 'ports'
    id = Column(Integer, primary_key=True)
    listofvlanids_id = Column('listofvlanids_id', ForeignKey('ListOfVlanIds.id'), nullable = True)

和电路:

class Circuit(Base):
    __tablename__ = 'circuits'
    id = Column(Integer, primary_key=True)
    listofvlanids_id = Column('listofvlanids_id', ForeignKey('ListOfVlanIds.id'), nullable = True)

在ForeignKey上的sqlalchemy.exc.NoReferencedTableError错误中运行这样的代码(对我来说)。

寻找我读过的错误我应该从列表中添加一个关系。我还没有找到一种方法(或一个例子),我可以从端口和电路构建它。我错过了什么?

为Ports和Circuits创建列表只会将问题向下游移动,因为VLAN ID是它自己的表...我希望能够使用ORM,而不必编写(很多)SQL用手。

1 个答案:

答案 0 :(得分:0)

ForeignKey需要一个表名和列名,而不是模型和属性名,因此它应该是ForeignKey('listofvlanids.id')