Sqlalchemy,column_property集合

时间:2015-11-10 14:46:00

标签: python sqlalchemy

这是模型

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,没有成功。谢谢。

1 个答案:

答案 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'和他们的元类。处理包时,列属性未就绪。