簡體   English   中英

單個表錯誤上的SQLAlchemy多對多關系:NoReferencedTableError

[英]SQLAlchemy Many-to-Many Relationship on a Single Table Error: NoReferencedTableError

我正在使用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創建數據庫時from my_app import db收到以下錯誤消息: sqlalchemy.exc.NoReferencedTableError: Foreign key associated with column 'cats_hierarchies.category_id' could not find table 'category' with which to generate a foreign key to target column 'id'

我究竟做錯了什么?

我通過添加擺脫了錯誤

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

到Category.children定義。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM