gpt4 book ai didi

python - 单个表上的 SQLAlchemy 多对多关系错误 : NoReferencedTableError

转载 作者:太空宇宙 更新时间:2023-11-03 18:21:12 25 4
gpt4 key购买 nike

我正在使用 Flask 和 SQLAlchemy。

我试图引用同一个表中的列来创建树结构,使用附加表来存储所有祖先-子连接,而不仅仅是父子连接。

我在这里使用了这个例子 https://stackoverflow.com/a/5652169/2947812 ,我在 models.py 中的代码是:

# -*- coding: utf-8 -*-
from my_app import db

Cats_hierarchies = db.Table('cats_hierarchies', db.MetaData(),
db.Column('parent_id', db.Integer, db.ForeignKey('category.id')),
db.Column('category_id', db.Integer, db.ForeignKey('category.id'))
)

class Category(db.Model):
__tablename__ = 'category'

id = db.Column(db.Integer, primary_key=True)
children = db.relationship("Category",
secondary = Cats_hierarchies,
primaryjoin = Cats_hierarchies.c.category_id == id,
secondaryjoin = Cats_hierarchies.c.parent_id == id,
backref="children")

当我尝试使用 from my_app import db 创建数据库时,收到以下错误消息:sqlalchemy.exc.NoReferencedTableError:找不到与列“cats_hierarchies.category_id”关联的外键表“category”,用于生成目标列“id”的外键

我做错了什么?

最佳答案

我通过添加消除了错误

foreign_keys =
[Cats_hierarchies.c.parent_id,
Cats_hierarchies.c.category_id])

到 Category.children 定义。

仍然不知道为什么有必要。在这里找到它:https://stackoverflow.com/a/8809907/2947812

关于python - 单个表上的 SQLAlchemy 多对多关系错误 : NoReferencedTableError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24107510/

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