Я использую Turbogears2 и SQLAlchemy для разработки веб-приложения. У меня есть две сопоставленные таблицы O1 и O2.
O2 имеет отсортированный список O1s в «единиц».
В какой-то момент я хочу запросить все O2 и ссылочные O1.
К сожалению, приведенный ниже запрос завершается неудачно, поскольку таблица O2 содержит псевдоним в запросе, а столбец, на который ссылается фраза order_by, больше не известен.
Я хотел бы знать, как я могу решить эту проблему, оставаясь, по возможности, в декларативном синтаксисе.
base = declarative_base()
class O1(base):
__tablename__ = 'O1'
value = Column(Integer)
o2_id = Column(Integer, ForeignKey('O1.id')) # The culprit
class O2(base):
__tablename__ = 'O2'
id = Column(Integer, primary_key=True)
ones = relation('O1', order_by = ['O1.value'])
Session.query(O2).options(eagerload('ones')).all() # Throws an error