Sqlalchemy конвертировать скалярные объекты в список - PullRequest
0 голосов
/ 05 января 2012

Привет! Я хочу преобразовать объект экземпляра (скалярные объекты), возвращенный методом filter (), в список.

Можно ли получить список, аналогичный списку, возвращенному методом "all ()".

Есть ли какие-либо методы?

Ответы [ 2 ]

0 голосов
/ 05 января 2012

Query.filter(criterion) метод не возвращает объекты экземпляра.Из документов:

примените данный критерий фильтрации к запросу и верните вновь полученный Query

Query.all(), с другой стороны, возвращает результаты.Из документов:

Вернуть результаты , представленные этим Query в виде списка.


Чтобы решить вашу задачу, простодобавьте .all() к запросу с filter, который выполнит запрос:

my_session.query(...).filter(...).all()
0 голосов
/ 05 января 2012

При запуске запроса

In [3]: session.query(User).all()
2012-01-05 16:45:42,553 INFO sqlalchemy.engine.base.Engine BEGIN (implicit)
2012-01-05 16:45:42,554 INFO sqlalchemy.engine.base.Engine SELECT user.username AS user_username
FROM user

Ошибка при запуске фильтра

In [4]: session.query(MPA).filter(User.username=='test')
Out[4]: <sqlalchemy.orm.query.Query object at 0x25d12d0> 

Так что если вы хотите список, то вы можете использовать это

In [5]: list (session.query(User).filter(User.username=='test'))

Но внутри он вызовет .all() метод.

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