sqlalchemy from_statement python对象的动态属性

时间:2011-10-07 11:55:57

标签: python dynamic attributes sqlalchemy

我有这样的模特:

class Test(db.Model, UnicodeMixin):
    __tablename__ = 'test'

    id = db.Column(db.Integer, primary_key=True)

    subject = db.Column(db.String(512), nullable=False)

    additional = None

    def __unicode__(self):
        return u'<Test {0}>'.format(self.id)

某些代码使用其他动态数据从db生成非常困难SELECT的RAW SQL。

例如:

db.session.query(Test).from_statement("SELECT test.id AS test_id, test.subject AS test_subject, 99 AS additional FROM test").all()

它生成python对象列表Test,但我如何为这些python对象填充属性additional

我不希望在数据库中存储NULLadditional

我想用SQL创建动态附加数据并将其添加到python对象。

请帮助。

感谢。

1 个答案:

答案 0 :(得分:0)

这样做:

db.session.query(Test, "additional").from_statement(
    """
    SELECT test.id AS test_id, test.subject AS test_subject, 99 AS additional
    FROM test
    """
).all()

它将返回(Test object,additional)结构中的元组列表。