2016-06-13 29 views
1

我有2個表:有列項 1)商店,與第二個表 2)項目表關係 - 有這樣的品牌等一些細節..SQLAlchemy的檢查,如果關係屬性在列表

我我試圖做出查詢,這會給我所有品牌在品牌列表中的商店的原料。

brands = self.session.query(Items).filter(Items.brand.in_(list)) 
self.session.query(Shop).filter((Shop.active_item== True) & 
             (Shop.item.has(brands))) 

提前感謝

回答

1

SQLAlchemy中仍然不支持IN_使用對象。因此你可以嘗試兩種方法。

  1. 獲得品牌ID並在第二個查詢中用in_過濾它們。

    品牌= self.session.query(項目).filter(Items.brand.in_(列表)) brand_ids = [obj.id用於品牌的obj]
    self.session.query(店鋪).filter ((Shop.active_item == True)& (Shop.item.id.in_(brand_ids)))

  2. 過濾器與品牌列表它自我。

    self.session.query(店).filter((Shop.active_item ==真)& (Shop.item.brand.in_(名單)))

這是剛出來的我的頭。但我可以明白這個主意。

乾杯。