I'm attempting to a sort of complex relationship filter/sort operation. I need to filter results by the id of a parent relationship, and then sort a nested relationship by one of its attributes
class Parent(Base): __tablename__ = 'parent' id = Column(types.Integer, primary_key=True, autoincrement=True) name = Column(types.Unicode, nullable=False) class ParentFeature(Base): __tablename__ = 'parent_feature' id = Column(types.Integer, primary_key=True, autoincrement=True) parent_id = Column(ForeignKey('parent.id', ondelete='CASCADE'), nullable =False, index=True) parent = relationship('Parent') unordered_things = relationship('Thing', secondary= 'parent_feature_thing') things = relationship('Thing', secondary='parent_feature_thing', order_by=Thing.name, viewonly=True) class ParentFeatureThingPivot(Base): __tablename__ = 'parent_feature_thing' parent_feature_id = Column(ForeignKey('parent_feature.id', ondelete= 'CASCADE'), primary_key=True) thing_id = Column(ForeignKey('thing_id.id', ondelete='CASCADE'), primary_key=True) class Thing(Base): __tablename__ = 'thing' id = Column(types.Integer, primary_key=True, autoincrement=True) name = Column(types.Unicode, nullable=False) Ideally on ParentFeature I would only need "things" and not "unordered_things", but sometimes I query directly against Parent, in which case it should always order_by ascending. Anyways that works. The actual issue, is that sometimes I need to be able to conditionally order "things" on queries against ParentFeature ascending or descending, and apparently(?) I can't use the "things" relationship because it is undconditionally applied to uses of that relationship The query that I think should be working, but is not is like this: direction = desc # or asc result = ( pg.query(ParentFeature) .join(ParentFeature.parent, ParentFeature.unordered_shows) .options( joinedload(ParentFeature.parent), joinedload(ParentFeature.unordered_shows), ) .filter(Parent.id == 3) .order_by(direction(Thing.name)) ) except it still orders the final query ascending (or unordered? but definitely not descending) any ideas? -- SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper http://www.sqlalchemy.org/ To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description. --- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.