【问题标题】:select some fields in eagerload在 eagerload 中选择一些字段
【发布时间】:2011-06-12 03:50:22
【问题描述】:

我有两张桌子:

自动类(基础): __tablename__ = "自动" id = Column(整数,primary_key=True) 添加=列(日期时间())

类网址(基础): __tablename__ = “网址” id = Column(整数,primary_key=True) 添加=列(日期时间()) auto_id = Column(整数,ForeignKey('auto.id')) url = 列(Unicode(500)) 内容 = 列(UnicodeText()) 自动 = 关系('自动',backref=backref('url',order_by=id))

我用

选择数据 Session.query(Auto).options(eagerload('url')).limit(20)

在 select 语句中,我获得了与 Auto 和 Url 表相关的所有字段,但我只想选择一些结果(Auto.id、Auto.added、Url.id、Url.added)。 问题是 Url.content 中存储了大量数据。

【问题讨论】:

    标签: join sqlalchemy pylons


    【解决方案1】:

    就像您对关系使用选项 eagerload() 一样,对于列属性有一个选项 defer() 可以在访问它们之前禁用加载它们:

    session.query(Auto).options(joinedload('url'), defer('url.content')).limit(20)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-24
      • 1970-01-01
      • 1970-01-01
      • 2016-04-18
      • 1970-01-01
      相关资源
      最近更新 更多