2011-01-20 37 views
2

の一部のフィールドを選択:私はオートに比べて、すべてのフィールドを取得し、私は、SELECT文で私は2つのテーブル持ってeagerload

 
Session.query(Auto).options(eagerload('url')).limit(20) 

でデータを選択

 
class Auto(Base): 

    __tablename__ = "auto" 

    id = Column(Integer, primary_key=True) 
    added = Column(DateTime()) 

 
class Url(Base): 

    __tablename__ = "url" 

    id = Column(Integer, primary_key=True) 
    added = Column(DateTime()) 
    auto_id = Column(Integer, ForeignKey('auto.id')) 
    url = Column(Unicode(500)) 
    content = Column(UnicodeText()) 

    auto = relation('Auto', backref=backref('url', order_by=id)) 

をし、 Urlテーブルが表示されますが、一部の結果(Auto.id、Auto.added、Url.id、Url.added)のみを選択します。 問題はUrl.contentに大量のデータを格納することです。

答えて

0

はあなたの関係のためのオプションeagerload()を使用しているように、彼らがアクセスされたそれまでは、それらをロード無効にするには、列のプロパティのオプションdefer()があります:

session.query(Auto).options(joinedload('url'), defer('url.content')).limit(20) 
関連する問題