SQLAlchemy filter()返回值

时间:2013-09-21 23:36:48

标签: python sqlalchemy

我现在有一天。

我想检查数据库中是否存在特定行,如果存在,则返回True。 如果没有,请返回False。

一个简短的例子:

contact_object = Contact.query.filter(Contact.user_id == user_id and Contact.contact_id == contact_id).first()

这应该返回1行(它确实如此)。这就是我想要的:

if contact_object:
    print "YEY, it was found"
else:
    print "Nope, not found"

但是,contact_object总是返回True,我总是得到一个“YEY,它被找到了”

(请注意user_idcontact_id是我之前定义的变量。)

如何检查未找到的行与找到的行?我读相关文档无济于事......但我觉得我肯定错过了一些简单的东西?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

我不相信你可以在SQL Alchemy的过滤器表达式中使用and

http://docs.sqlalchemy.org/en/rel_0_8/orm/tutorial.html#common-filter-operators

contact_object = Contact.query \
    .filter(Contact.user_id == user_id) \
    .filter(Contact.contact_id == contact_id) \
    .first()