Как упорядочить элементы, когда многие и многие принимают в питонах SQLAlchemy? - PullRequest
2 голосов
/ 09 июля 2011

Предполагается, что две модели связаны между собой многими:

parent_child = Table('parent_child', metadata,
                         Column('parent_id', Integer, ForeignKey('parent.id')),
                         Column('child_id', Integer, ForeignKey('children.id')))

class Parents(Base):
    __tablename__ = 'parents'
    __table_args__ = {'autoload' : True} # reflecting database

    children = relationship('Child',
                          secondary=parent_child,  # What goes here for sorting?
                          backref='parents')

class Child(Base):
    __tablename__ = 'children'
    __table_args__ = {'autoload' : True} # reflecting database

Я знаю, что могу сделать

parent = session.query(Parent).first()

, чтобы получить первый родительский элемент таблицы.Выполнение

parent.children

возвращает всех дочерних элементов данного родителя. Что, если я хочу отсортировать их, скажем, по дате рождения (при условии, что модель Child имеет столбец birthdate)?

Ответы [ 2 ]

0 голосов
/ 24 января 2017

Также вы пропустили s в parent = session.query(Parents).first() и s в ForeignKey

children = relationship('Child', secondary=parent_child, order_by='Child.birthdate', backref='parents')
0 голосов
/ 13 декабря 2011

есть аргумент ключевого слова order_by, доступный для отношений. здесь

...