Как запросить многие ко многим, основываясь на некоторых ограничениях в sqlalchemy фляги?

Если у меня естьUser а такжеItem модели, и у них есть связь многие-ко-многим, как мне построить запрос, который возвращает:

(1) Все предметы, которые принадлежат любому пользователю с именем 'Bob'

Я старался:

Item.query.filter(User.name == 'Bob')

Который возвращает все элементы независимо от имени пользователя (неверно)

(2) Все предметы, которые имеют имя «акула» и принадлежат любому пользователю по имени «Боб»

Я старался:

Item.query.filter(User.name == 'Bob' & Item.name == 'shark')

То же, что и выше, но возвращает только элементы с именем «акула» независимо от имени пользователя. (Неверная)

Мои модельные определения:

association_table = Table('items_users',
    Column('itemid', Integer, ForeignKey('item.id'), primary_key=True),
    Column('userid', Integer, ForeignKey('user.id'), primary_key=True)
)

class Item(Model):
    # other fields...

    # many to many association
    users = relationship('User', secondary=association_table, lazy='dynamic', backref=backref('items', lazy='dynamic'))

class User(Model):
    # other fields...

Какой будет подходящий синтаксис для двух запросов?

Ответы на вопрос(1)

Ваш ответ на вопрос