2016-06-13 2 views
1

У меня есть 2 таблицы: 1) Магазин, которые имеют колонки элемент, имеющие отношения со второй таблицей 2) Элементы таблицы - есть некоторые детали, как бренд и т.д ..SQLAlchemy если отношения собственности находится в списке

I я пытаюсь сделать запрос, который даст мне все сырье из магазина, где бренд находится в списке брендов.

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. получить идентификаторы бренда и отфильтровать их с помощью in_ во втором запросе.

    брендов = self.session.query (Items) .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 == True) & (Shop.item.brand.in_ (список)))

Это просто из моя голова. Но я могу получить эту идею.

Cheers.

Смежные вопросы