2016-08-29 7 views
0

ユーザが指定したフィールドで検索したいと思います。Djangoクエリの動的フィルタ

私はこれまでのところ、これを持っている:フィルター内部

def search_engine(model, given_field, text): 
    # Stuff 
    result = model.objects.filter(given_field__icontains=text) 
    return result 

「given_field」は変数である関数で与えられたパラメータになります。

答えて

1

given_fieldから生成された動的キーを使用してdictを作成し、**を使用して解凍してキーワード引数を生成します。

def search_engine(model, given_field, text): 
    # Stuff 

    filters = { 
     given_field+'__icontains': text 
    } 
    result = model.objects.filter(**filters) 
    return result 
+0

完璧!私は非常にpythonicの方法を探していた、そしてこれは素晴らしいです、ありがとう! ;) – hectorlr22