首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在sqlalchemy中引用外键refer

无法在sqlalchemy中引用外键refer
EN

Stack Overflow用户
提问于 2019-04-25 19:52:55
回答 1查看 35关注 0票数 0

我有两个表格模型,一个是父模型,另一个是子模型。

这是我的父模型

代码语言:javascript
复制
class users_table(Base):
    __tablename__ = 'users_table'
    userid = Column(String(50), unique= True, primary_key= True, nullable= False)
    username = Column(String(500), unique= True, nullable= False)
    password = Column(String(500), nullable= False)
    email = Column(String(500), nullable= False, unique= True)
    role = Column(String(10), default= 'user', nullable= False)
    created_on = Column(DateTime, nullable= False, default= datetime.datetime.utcnow)
    updated_on = Column(DateTime, nullable= False, default= datetime.datetime.utcnow)
    children = relationship("user_status_table")

这是我的孩子模型

代码语言:javascript
复制
class user_status_table(Base):
    __tablename__ = 'user_status_table'
    id = Column(Integer, primary_key= True, nullable= False, unique= True, autoincrement=True)
    userid = Column(String(50), ForeignKey('users_table.userid'), nullable= False, unique= True)
    status = Column(String(50), default= 'active', nullable= False)
    updated_on = Column(DateTime, nullable= False, default= datetime.datetime.utcnow)

当运行我的服务器时,它给出了以下错误:

代码语言:javascript
复制
"When initializing mapper Mapper|users_table|users_table, expression 'user_status_table' failed to locate a name (\"name 'user_status_table' is not defined\"). 

如果这是一个类名,请考虑在定义两个依赖类之后将此关系()添加到类中。“

EN

回答 1

Stack Overflow用户

发布于 2019-04-26 02:43:51

正如我所看到的,您正在尝试在users_table和user_status_table之间建立一对一的关系,因为您希望user_status_table.userid是惟一的,为此,请使用uselist标志

下面是一个简单的例子:

代码语言:javascript
复制
class Parent(Base):
    __tablename__ = 'parent'
    id = Column(Integer, primary_key=True)
    child = relationship("Child", uselist=False, back_populates="parent")

class Child(Base):
    __tablename__ = 'child'
    id = Column(Integer, primary_key=True)
    parent_id = Column(Integer, ForeignKey('parent.id'))
    parent = relationship("Parent", back_populates="child")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55848713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档