sqlalchemy from_statement динамические атрибуты для объектов Python - PullRequest
4 голосов
/ 07 октября 2011

У меня есть такая модель:

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)

Некоторый код генерирует RAW SQL для очень сложных SELECT из БД с дополнительными динамическими данными.

Например, например:

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, но как я могу заполнить атрибут additional для этих объектов Python?

Я не хочу хранить NULL столбец additional в базе данных.

Я хочу создать динамические дополнительные данные с помощью SQL и добавить их в объекты Python.

Помогите пожалуйста.

Спасибо.

1 Ответ

0 голосов
/ 08 ноября 2016

Сделайте это:

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

Будет возвращен список кортежей в структуре (Тестовый объект, дополнительный).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...