2010-11-15 82 views
1

当我做的时候:问题查询数据库

channel = session.query(Channel).options(eagerload("items")).filter(Channel.title == title) 

我得到这个错误:

TypeError: 'bool' object is not callable 

如果我摆脱options(eagerload("items")),它的正常工作。

任何想法??

提前致谢!

+2

只是猜测,但你有一些'eagerload'变量的地方是布尔?这可能是它的直接原因。如果没有,那么从堆栈跟踪和/或代码中获取更多信息将会有用。 – Wolph 2010-11-15 20:52:04

+0

是的,就是这样,我刚刚意识到我在某些时候声明了eagerload变量。谢谢! – bribon 2010-11-15 20:56:46

回答

0

SQLAlchemy过滤与运算符重载列对象一起使用。但是,您不是引用列对象,而是引用表的值属性。因此,而不是

Channel.title == title 

这是一个 '布尔' 对象,需要

Channel.c.title == title 

这产生SLQAlchemy特定对象。