0
我有以下代碼。用kwargs過濾Django
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))
對於這個代碼我收到一個錯誤,類型錯誤:「bool的」對象有沒有屬性「的GetItem」。我打算用這個替換下面的代碼。
q = Elements.objects.all()
id = kwargs.get("id")
active = kwargs.get("is_active")
q.filter(id=id,is_active=active)
如何修復這樣的錯誤?
請 「用'ID = kwargs.get(ID'(ID」)''更改ID = kwargs.get)「 由於這是一個非常小的變化,我不能編輯。你的問題。什麼是'Q'? – GLR
爲什麼不簡單查詢?'q = Elements.objects.filter(id = kwargs.get(「id」),active = kwargs.get(「is_active」))' –
@RomanMindlin我想要一個更好的方法,當字段數量很大,參數是可選的。 –