2012-01-05 21 views

回答

0

當你,如果你,如果你想列表,那麼你可以使用這個

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

運行過濾器

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

所以運行查詢

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 

錯誤,但在內部它會請致電.all()方法。

+1

它給了我一個錯誤「對象不是可迭代的」 – northlondoner 2012-01-06 05:44:06

+1

威爾您請提供您的代碼,以便我們可以檢查 – Nilesh 2012-01-10 11:16:59

0

Query.filter(criterion)方法不返回實例對象。從文檔:

應用給過濾標準的查詢和返回新產生的Query

Query.all(),在另一方面,返回結果。從文檔:

返回此Query作爲列表所表示的結果


爲了解決你的任務,只需添加.all()到查詢與filter,這將執行查詢:

my_session.query(...).filter(...).all() 
+0

它提供了「屬性all()不受支持的錯誤」 – northlondoner 2012-01-06 05:41:12

+0

@northlondoner:請提供示例代碼,它會產生您描述的錯誤... – van 2012-01-06 07:43:00

相關問題