我一直收到这个错误:
“sqlalchemy.exc.NoForeignKeysError:无法确定连接条件 在关系Parent.children上的父/子表之间 - 那里 没有连接这些表的外键。确保引用 列与ForeignKey或ForeignKeyConstraint相关联,或 指定'primaryjoin'表达式。“
我按照SQLAlchemy文档中的指南进行操作,但我仍然收到此错误。
class Parent(db.Model):
__tablename__ = 'parent'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.Text) #maybe add unique
children = db.relationship('Child', backref='parent', cascade = "all, delete-orphan", lazy='dynamic')
def __init__(self, name):
self.name = name
def add(self, parent):
db.session.add(parent)
return session_commit()
class Child(db.Model):
__tablename__ = 'child'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.Text)
parent_id = db.Column(db.Integer, db.ForeignKey('Parent.id'))
def __init__(self, name, parent):
self.name = name
self.parent_id = parent
def add(self, child):
db.session.add(child)
return session_commit()
根据在线指南,我看起来不对,但我似乎无法找到关系问题。
另外,不应该
parent_id = db.Column(db.Integer, db.ForeignKey('Parent.id'))
是
parent_id = db.Column(db.Integer, db.ForeignKey('parent.id'))
其中parent是表名?我得到一个错误,它告诉我“关系'父母'不存在”
答案 0 :(得分:0)
您设置父模型的表名称 tablename =“parent”。因此parent_id的定义应该是parent_id = db.Column(db.Integer(),db.ForeignKey(“parent.id”))。您可以在子模型中定义一个名为parent的关系,或者通过在子关系的define中设置foreign_keys的值,在Parent模型中指定子关系的外键。