2017-08-19 10 views
0

私は現在Flaskで作業しています& Peewee。 Imhoは良いコンビネーションだけど、今私はピューニーが自分のプロジェクトで「弱い」ように見えるようになった。おそらくその私、間違った方法で何かを考える:)PythonとPeewee - 動的where-clause

次のコードは私の問題を非常によく説明しています。

# 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参照による節が クエリ有用な結果ができない場合。 databasetable参照によって私はdatabasetable .fieldnameのようなものを意味します。

ですから、どのようにして簡単なdict/list(キー値のペア)をベースにして有効なwhere節を動的に作成するのですか?

答えて

0

フィールドオブジェクトを取得するには、DatabaseTable._meta.fields [field_name]またはgetattr(DatabaseTable、field_name)を使用してください。フィールドオブジェクトを演算子と値と組み合わせて動的に式を構築できます。

+0

ありがとう、コリファー!できます。 #いいぞ – r4r3devAut

関連する問題