【发布时间】:2017-12-10 21:03:39
【问题描述】:
我正在玩一个玩具示例,以查看背面填充在操作中,但遇到了一个我无法理解的错误。下面我有两个相互填充的“模型”。当我尝试创建用户对象时,它会引发错误。我错过了什么?
“sqlalchemy.exc.NoForeignKeysError:无法确定关系 Child.user 上的父/子表之间的连接条件 - 没有链接这些表的外键。确保引用列与 ForeignKey 或 ForeignKeyConstraint 相关联,或指定一个'primaryjoin' 表达式。”
engine = create_engine('sqlite:///:memory:', echo=False)
Session = sessionmaker(bind=engine)
session = Session()
Base = declarative_base(bind=engine)
class User(Base):
__tablename__ = 'user'
user_id = Column("UserID", Integer, primary_key=True)
name = Column("Name", String(50))
age = Column("Age", SmallInteger)
child = relationship("Child", back_populates="user")
class Child(Base):
__tablename__ = 'child'
child_id = Column("ChildID", Integer, primary_key=True)
school = Column("School", String)
grade = Column("Grade", String)
user_id = Column("UserID", Integer, ForeignKey('User.UserID'), index=True, nullable=True)
user = relationship("User", back_populates="child")
【问题讨论】:
标签: python sqlalchemy