2013-06-24 28 views
0

我想将函数filter和filter_by包装为一个函数 ,并根据参数调用过滤器或filter_by。将sqlalchemy的过滤器和filter_by函数封装在一个函数中

MyModel.get(MyModel.mycolumn == 'value') 
MyModel.get(mycolumn='value') 

有没有办法做到这一点:

该功能必须在某种程度上,这两个将回到同一个东西的行为? 谢谢!

回答

0

我想你可以根据参数是否给出关键字或没有做到这一点:

def get(*args, **kwargs): 
    if kwargs: 
     return query.filter_by(**kwargs) 
    else: 
     return query.filter(*args) 
+0

我傻。我试图通过只使用** kwargs ... thnx! – d3m

+2

更好的可能是'返回query.filter(* args).filter_by(** kwargs)'这样你就可以通过! – SingleNegationElimination