【发布时间】:2013-06-24 11:49:59
【问题描述】:
我想将函数 filter 和 filter_by 包装成一个函数 并根据参数调用filter或filter_by。
函数的行为方式必须使这两者返回相同的东西:
MyModel.get(MyModel.mycolumn == 'value')
MyModel.get(mycolumn='value')
有没有办法做到这一点? 谢谢!
【问题讨论】:
标签: python sqlalchemy
我想将函数 filter 和 filter_by 包装成一个函数 并根据参数调用filter或filter_by。
函数的行为方式必须使这两者返回相同的东西:
MyModel.get(MyModel.mycolumn == 'value')
MyModel.get(mycolumn='value')
有没有办法做到这一点? 谢谢!
【问题讨论】:
标签: python sqlalchemy
我认为你可以根据参数是否作为关键字给出:
def get(*args, **kwargs):
if kwargs:
return query.filter_by(**kwargs)
else:
return query.filter(*args)
【讨论】:
return query.filter(*args).filter_by(**kwargs),所以你可以同时通过!