#python #sqlalchemy #flask-sqlalchemy
Вопрос:
У меня есть Product
класс и Tag
класс, которые имеют отношение «многие ко многим».
Product.tags
дает мне список всех тегов для продукта.
У меня есть список тегов в качестве критериев поиска: ['tag1', 'tag2', 'tag3']
.
Как я могу получить список продуктов, содержащий хотя бы один тег, соответствующий списку?
Я могу легко решить эту проблему с помощью SQL, но я не совсем уверен, как решить ее с помощью ORM.
matching_products = Product.query.join(Product.tags).filter( ??? ).all()
Комментарии:
1.
tags = ['tag1', 'tag2', 'tag3']
;Product.query.join(Product.tags).filter(Product.tags.in_(tags)).all()
?2. Ошибка:
in_() not yet supported for relationships. For a simple many-to-one, use in_() against the set of foreign key values.