SQLAlchemy, как отфильтровать по детям во многих ко многим

Я спрашивал о проблеме, которая была у меня в SQLAlchemy, и нашел решение во время написания. Я выкладываю это на всякий случай, если это кому-нибудь поможет :)

Позволять'скажем, у меня есть отношения многие ко многим, которые, кажется, работают (по крайней мере, я могу выбрать детей) Три таблицы: записи, теги и post_tags.

import sqlalchemy as alc

class Tag(Base):
    __tablename__ = 'tags'

    id = alc.Column(alc.Integer, primary_key=True)
    name = alc.Column(alc.String)
    accepted = alc.Column(alc.Integer)

    posts = relationship('Post', secondary=post_tags)



class Post(Base):

    __tablename__ = 'posts'

    id = alc.Column(alc.Integer, primary_key=True)
    text = alc.Column(alc.String)
    date_out = alc.Column(alc.Date)

    tags = relationship('Mistake_Code', secondary=post_tags)

# relational table
post_tags = alc.Table('check_point_mistakes',
                       Base.metadata,
                       alc.Column('post_id', alc.Integer,ForeignKey('posts.id')),
                       alc.Column('tag_id', alc.Integer, alc.ForeignKey('tags.id')))

Теперь моя проблема в том, что я хочу сначала отфильтровать по date_out в Post. Я могу получить это так:

# assume start_date and end_date

query = (
            session.query(Post)
                   .filter(Post.date_out.between(start_date, end_date))
 )

Но как фильтровать по тегам одновременно?

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

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