我目前正在与烧瓶和小便器。我的组合不错,但现在我到了一个地步,皮威似乎“弱”为我的项目。可能是我,想错事了:)
下面的代码很好地描述了我的问题。
# dynamic data from somewhere outside my application
# (does not really matter from where)
# how data really look like
dynamicInput = [(fieldname1 == 'abc'),(fieldname2 == 'def')]
# how data should look like (in a dynamic way)
dynamicInput = [(databasetable.fieldname1 == 'abc'), (databasetable.fieldname2 == 'def')]
# query database with peewee query
model = self.action_meta.model_clothing.select().where(dynamicInput).get()
由于缺少databasetable引用,where子句无法
查询有用的结果。我所说的databasetable引用是指类似databasetable.fieldname的内容。
所以问题是如何在简单的dict/list(键值对)的基础上动态地创建一个有效的where子句。
最佳答案
只需使用DatabaseTable.\u meta.fields[字段名]或getattr(DatabaseTable,字段名)即可获取字段对象。通过将字段对象与运算符和值结合,可以动态构造表达式。