gpt4 book ai didi

python - 邻接表的错误在哪里?

转载 作者:太空宇宙 更新时间:2023-11-03 16:17:19 27 4
gpt4 key购买 nike

尝试 self 引用时出现错误

class Sku(Base, ReprDescrIdMixin):
__tablename__ = 'SC84'
id = Column("ID", String, primary_key=True)
parent_code = Column("PARENTID",String, ForeignKey('sku.id'))
parent = relationship('Sku', foreign_keys='Sku.parent_code')


sqlalchemy.exc.NoForeignKeysError: Could not determine join condition between parent/child tables on relationship Sku.parent - there are no foreign keys linking these tables. Ensure that referencing columns are associated with a ForeignKey or ForeignKeyConstraint, or specify a 'primaryjoin' expression.

为什么呢?这是工作http://docs.sqlalchemy.org/en/latest/orm/self_referential.html

最佳答案

试试这个

class Sku(Base, ReprDescrIdMixin):
__tablename__ = 'SC84'
id = Column("ID", String, primary_key=True)
parent_code = Column("PARENTID",String, ForeignKey(id))
parent = relationship('Sku', foreign_keys=parent_code)

当使用ForeignKey(...)时,您应该传递引用键,有两种方法可以做到这一点

  1. 通过传递带有.连接的表名和键的字符串,例如ForeignKey("table_name.key")
  2. 通过传递 Column 对象,例如 ForeignKey(key)

只有当 key 已经定义时,才可以使用方法 2,换句话说,如果 ForeignKey(key) 位于 key = Column( ...)

在我的示例中,我使用方法 2,我更喜欢这种方式,以便我的 IDE 分析代码。

查看此link

关于python - 邻接表的错误在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38841568/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com