SQLAlchemy 基本问题

2023-12-25

我相信对于任何有 SQLAlchemy 经验的人来说,这都是基础知识;但我觉得这些文档没有什么帮助,而且我厌倦了挠头。

给定两个类:

class User(Base):
    __tablename__='users'
    id = Column(Integer, primary_key=True)
    name = Column(String(32))
    ...

class UserPost(Base):
    __tablename__='posts'
    id = Column(Integer, primary_key=True)
    poster = Column(Integer, ForeignKey('users.id'))
    subject = Column(String(32))

我所追求的是一种方法:

post = session.query(UserPost).filter_by(subject="foo").one()
print post.poster.name
>>> "John Doe"

我正在尝试这样做relation()属性,但我只是一直在绕圈,并出现有关连接关系等的错误:S

我的关系看起来像:

class UserPost(Base):
    __tablename__='posts'
    id = Column(Integer, primary_key=True)
    poster = Column(Integer, ForeignKey('users.id'))
    subject = Column(String(32))
    poster_user = relation(User, primaryjoin=poster==User.id)

我是 SQLAlchemy 巫毒的新手,所以要温柔! :)

提前感谢各位,如果这变成 RTFM 或错误的末端,请提前道歉


我认为你只是把关系定义搞反了。

Try:

class User(Base):
    __tablename__='users'
    id = Column(Integer, primary_key=True)
    name = Column(String(32))
    posts = relation("UserPost", backref="poster")

class UserPost(Base):
    __tablename__='posts'
    id = Column(Integer, primary_key=True)
    user_id = Column(Integer, ForeignKey('users.id'))
    subject = Column(String(32))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQLAlchemy 基本问题 的相关文章

随机推荐