4
假設我有一個查詢方法,其中包括可選過濾器。我想實現的是,如果我傳遞一些非None值來過濾參數,那麼做一個過濾器,如果過濾器值爲None,那麼就忽略它。sqlalchemy - 優雅的方式來處理幾個可選的過濾器?
def get_query_results(filter1=None, filter2=None, ...):
res = models.Item.query
if filter1 is not None:
res = res.filter(filter1=filter1)
if filter2 is not None:
res = res.filter(filter2=filter2)
....
return res.all()
我想避免的是模式
if XXX:
res.filter(XXX=XXX)
我不知道是否有任何更優雅的方式來實現這一目標?
例如,通過各種過濾器作爲參數?
或者,也許,我們可以做一些神奇的事情,當過濾器值爲None時省略過濾器?