【发布时间】:2014-07-15 15:49:22
【问题描述】:
我将 sqlalchemy 从 0.7 升级到 0.9.6。升级后出现以下错误:
TypeError
TypeError: filter_by() takes exactly 1 argument (2 given)
howerver 在它正常工作之前没有任何问题。我该如何解决这个问题?
【问题讨论】:
标签: python sqlalchemy upgrade
我将 sqlalchemy 从 0.7 升级到 0.9.6。升级后出现以下错误:
TypeError
TypeError: filter_by() takes exactly 1 argument (2 given)
howerver 在它正常工作之前没有任何问题。我该如何解决这个问题?
【问题讨论】:
标签: python sqlalchemy upgrade
没有看到代码,显然你调用 filter_by 是错误的。 filter_by 只接受隐含的 self('exactly 1 argument' 意味着正好 1 个位置参数)和可选的关键字参数。您正在提供 filter_by 另一个位置参数,可能是字典。
语法是:
query.filter_by(column1=value, column2=value)
而对于filter:
query.filter(Model.column1 == value, Model.column2 == value)
【讨论】:
filter_by 不应该被添加。它令人困惑并且与预期的行为相矛盾,例如相比order_by
filter_by