2011-10-26 61 views
2

我有模型'用戶'屬於模型'角色'。一個'角色'有很多'用戶',一個'用戶'有一個'角色'。Sqlalchemy選擇有關表的問題

如果我要選擇所有用戶,其中「角色」是隱藏的,您說(這純粹是一個例子),我必須做這樣的事情:僅僅通過使用連接在此查詢我得到的

User.query.join(Role).filter(roles_table.c.hidden==1).all() 

以下消息:

Select語句 'SELECT role.hidden FROM角色,用戶WHERE role.id = user.role_id' 沒有返回FROM由於自相關條款; 指定correlate()手動控制關聯。

任何人都可以指引我查詢的正確方向嗎?

回答

1

如果您嘗試以下代替:

User.query.join(Role).filter(Role.hidden==1).all() 
1

User類具有Role的關係,最簡單的方法是:

User.query.filter(User.role.has(hidden=1))