【问题标题】:SqlAlchemy. TypeError: filter_by() takes exactly 1 argument (2 given)SqlAlchemy。 TypeError: filter_by() 只需要 1 个参数(给定 2 个)
【发布时间】: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


    【解决方案1】:

    没有看到代码,显然你调用 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
    猜你喜欢
    • 2018-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多