2010-08-16 20 views
0

我有這個表:如何使用多對多關係過濾兩個表中的列?

channel_items = Table(
     "channel_items", 
     metadata, 
     Column("channel_id", Integer, ForeignKey("channels.id")), 
     Column("media_item_id", Integer, ForeignKey("media_items.id")) 
    ) 

class Channel(rdb.Model): 
    """Set up channels table in the database""" 
    rdb.metadata(metadata) 
    rdb.tablename("channels") 

    id = Column("id", Integer, primary_key=True) 
    title = Column("title", String(100)) 

    items = relationship("MediaItem", secondary=channel_items, order_by="MediaItem.titleView", backref="channels") 

class MediaItem(rdb.Model): 
    """Set up items table in the database""" 
    rdb.metadata(metadata) 
    rdb.tablename("media_items") 

    id = Column("id", Integer, primary_key=True) 
    title = Column("title", String(100)) 
    type = Column("type", String(50)) 

我想進行查詢,但濾波第二表。喜歡的東西:

渠道= session.query(信道)可供選項(eagerload( 「項目」))過濾器(MediaItem == 「JPG」)所有()

在此先感謝!

回答

0

您只需通過關係名稱引用它即可。此外,它的'項目'在你的計劃,而不是'項目'。

channels = session.query(Channel).options(eagerload("items")).filter(Channel.items.type == "jpg").all() 
+0

明白了。謝謝! – bribon 2010-08-17 13:47:10

相關問題