这是模型
class Trade(Base):
__tablename__ = 'trade'
***
original_price = Column(FLOAT)
left_volume = Column(FLOAT)
result_right_volume = Column(FLOAT)
original_right_volume = column_property(original_price * left_volume)
all_prices = Bundle(None,original_price, result_right_volume, exec_price, original_right_volume)
然后我想在查询中使用它
Trade.query(...., Trade.app_prices)
orm.Bundle,orm.composite也不适用于column_property。 动机 - 是的,我可以列出查询中的所有字段,但我有很多查询,为方便起见,希望使用这种方式。试图使用ClauseList和ColumnsList,没有成功。谢谢。
答案 0 :(得分:1)
好的,我可以这样写:
class Trade(Base):
__tablename__ = 'trade'
***
original_price = Column(FLOAT)
left_volume = Column(FLOAT)
result_right_volume = Column(FLOAT)
original_right_volume = column_property(original_price * left_volume)
Trade.all_prices = Bundle(None, Trade.original_price, Trade.result_right_volume, Trade.exec_price, Trade.original_right_volume)
看起来问题出在sqlalchemy' magic'和他们的元类。处理包时,列属性未就绪。