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