2
我在渦輪增壓器控制器中動態添加和子句,一切正常,直到我到達日期列,它似乎無法評估表達式,因爲我得到渦輪機中的「ProgrammingError」。這是代碼:sqlalchemy:and_和條款列表中的日期函數的評估
terms = ["create_time<=DateTime('2012-01-01')"]
records = DBSession.query(myrecords).filter(and_(*terms))
,如果我做這樣的工作原理:
records = DBSession.query(myrecords).filter(and_(create_time<=DateTime('2012-01-01')))
它是什麼,我俯瞰?
感謝
你的'* terms'會將一個字符串解析爲'和_()',而你的「作品」解析了一個不同的表達式。也許這就是爲什麼他們工作不同? – 2012-01-12 00:28:15
是的,我只是檢查了一下,似乎子句列表只會對簡單的比較有用......除非我這樣做:and_(eval(* terms)) – 2012-01-12 00:32:32
您可以嘗試'eval()',但那永遠不是良好的做法:P – 2012-01-12 00:33:39