烧瓶SQLAlchemy的SELECT COUNT()
问题描述:
我有这样烧瓶SQLAlchemy的SELECT COUNT()
query = Notification.query(db.func.count(Notification.id))
query = query.filter(Notification.read == False)
query = query.filter(Notification.id == recv_id)
return query.all()
查询和我有错误这样
query = Notification.query(db.func.count(Notification.id)) TypeError: 'BaseQuery' object is not callable
请帮忙,谢谢
答
你的第一行引发错误。 query
是BaseQuery的一个实例,不可调用。
你所试图做的是类似于:
class A(object):
pass
a_obj = A()
print a_obj()
你不能调用一个实例。
你应该在实例上调用一些方法。
不确定为什么你需要代码中的第一行。
你可以这样做:
Notification.query.filter(Notification.read == False)
是的,谢谢你提吧:)不过我还是在这行有错误'查询= Notification.query(db.func.count(Notification.id) )也许是db.func.count()' – rizarc 2013-05-02 05:17:08
这是给出错误的那一行。你有什么改变?你不能'查询(db.func.count())'。你将不得不在'query'上使用'query.filter()'或其他方法。你试图使用'query'本身作为你不能做的方法,因为它是一个实例。 – 2013-05-02 05:39:48
现在我明白调用一个实例,我有这个问题的另一个解决方案,我使用paginate()从查询结果中获得总数。像这样'query.paginate(1,per_page = 10,error_out = True)'它适用于我感谢:)顺便说一句,我在Python初学者 – rizarc 2013-05-02 07:25:55