2017-09-20 7 views
0

私は次のコードを持っています。このコードの場合kwargsでのジャンゴのフィルタリング

def alpha(**kwargs): 
    q_obj_list = [Q(str(i), kwargs.get(i)) for i in kwargs.keys()] 
    reduce(operator.and_, q_obj_list) 
    return q_obj_list 

q = Elements.objects.all() 
q = q.filter(alpha(id=1, is_active=False)) 

私は例外TypeErrorを言ってエラーが発生します。「ブール」オブジェクトは「のGetItem」は属性を持っていません。私はこれに以下のコードを置き換えるつもりだった。

q = Elements.objects.all() 
id = kwargs.get("id") 
active = kwargs.get("is_active") 
q.filter(id=id,is_active=active) 

このようなエラーを修正する方法を教えてください。

+0

は "(ID") 'ID = kwargs.get'によって(ID '' ID = kwargs.get)" を変更してください。あなたの質問Qとは何ですか? – GLR

+1

なぜ単純なクエリではないのですか?Q = Elements.objects.filter(id = kwargs.get( "id")、active = kwargs.get( "is_active")) ' –

+0

@RomanMindlin –

答えて

1

あなたは使用する必要があります。それは私が編集することはできません非常に小さな変更があるので q = Elements.objects.filter(**kwargs)

関連する問題