SQLAlchemy从关系中获取数据

DevByGames

我有这个模特

class Post(Base):
    __tablename__ = 'posts'
    id = Column(Integer, primary_key=True)
    content = Column(Text)
    author = Column(Integer, ForeignKey('users.id'))
    to_topic = Column(Integer, ForeignKey('topics.id'))

    def __init__(self, content: str, author: int, to_topic: int) -> None:
        self.content = content
        self.author = author
        self.to_topic = to_topic

class User(Base):
    __tablename__ = "users"
    id = Column(Integer, primary_key=True)
    username = Column(String(30))
    email = Column(String(40))
    password = Column(String(255))
    registred_at = Column(DateTime, default=datetime.datetime.now)
    last_logged_in = Column(DateTime)
    last_login_attempt = Column(DateTime)
    avatar = Column(Integer, ForeignKey('files.id'))
    role = Column(String(20))
    email_confirm = Column(Boolean, default=False)
    children_forum = relationship('Forum')
    children_topic = relationship('Topic')
    children_post = relationship('Post')

我正在尝试获取包含Post.content,Post.author.username的查询,但是我该如何在会话中执行此操作?

我试过了

 posts = db_session.query(Post, User).filter(
        Post.to_topic == topic_id).with_entities(Post.content, Post.author.username)

但这不起作用,因为作者只是整数(id),所以我希望我需要以某种方式获取作者对象并在一个查询中发布对象,但我不知道如何。在sql中,只有2个查询很容易,但是在这里我不知道它是如何完成的。

加布·蒂姆(Gabe Timm)
 query_results = db_session.query(Post, User).\
     join(User, Post.author == User.id).\
     filter(
         Post.to_topic == topic_id
     ).all()

我从未使用过with_entities,但是我知道这会给您一个元组列表,其中query_results[0]将是您的Post实例,也query_results[1]将是您的User实例。

编辑:我相信您不必包含这Post.author == User.id一点,但是如果您明确地加入联接,那么它会更加清晰。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从sqlalchemy中的关系获取列表的字典?

来自分类Dev

从关系中获取数据,Laravel

来自分类Dev

Laravel从多对多关系中获取数据

来自分类Dev

休眠,无法从关系中获取数据

来自分类Dev

查询以获取Laravel中的关系数据

来自分类Dev

从多对多关系中获取过滤数据

来自分类Dev

如何从Laravel中的关系获取数据?

来自分类Dev

从3个关系表中获取数据

来自分类Dev

休眠,无法从关系中获取数据

来自分类Dev

无法获取“多态关系”中的数据

来自分类Dev

在laravel中通过javascript获取数据关系

来自分类Dev

SQLAlchemy在与关联表多对多关系中插入数据

来自分类Dev

使用API访问sqlalchemy中的关系表数据

来自分类Dev

从Codeigniter中的关系数据库中获取数据

来自分类Dev

Python sqlalchemy:如何使用关系从多对多获取计数数据

来自分类Dev

如何使用yii中的joins从关系中获取数据

来自分类Dev

SQLAlchemy中的多态所属关系?

来自分类Dev

在SQLAlchemy中定义ORM关系

来自分类Dev

在SQLAlchemy中过滤关系属性

来自分类Dev

在 SQLAlchemy 中查找祖先的关系

来自分类Dev

从关系数据库中获取的 csv 数据创建节点和关系

来自分类Dev

如何从存在一对多关系的表中获取数据?

来自分类Dev

Laravel雄辩的模型如何从关系表中获取数据

来自分类Dev

通过核心数据中的关系获取价值

来自分类Dev

使用coredata中的NSDictionaryResultType获取关系实体数据

来自分类Dev

雄辩地从多对多关系中获取数据

来自分类Dev

从@ManyToOne()关系中获取数据mikro orm mongodb

来自分类Dev

我如何通过yii中的CActiverecord获取关系数据?

来自分类Dev

使用关系在单个雄辩的查询laravel中获取数据?

Related 相关文章

热门标签

归档