Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SqlAlchemy. TypeError: filter_by() takes exactly 1 argument (2 given)

I upgraded sqlalchemy from 0.7 to 0.9.6. After upgrade I am getting the following error:

TypeError
TypeError: filter_by() takes exactly 1 argument (2 given)

howerver before it was working without any issue. How can I manage that issue?

like image 979
Max Avatar asked Jul 15 '14 15:07

Max


1 Answers

Without seeing code, obviously you are calling filter_by wrong. filter_by takes only the implicit self (the 'exactly 1 argument' meaning exactly 1 positional argument) and optional keyword arguments. You are providing filter_by another positional argument, possibly a dictionary.

The syntax is:

query.filter_by(column1=value, column2=value)

Whereas for filter:

query.filter(Model.column1 == value, Model.column2 == value)