フィルターで取得した var 値を選択して、ループに値を追加するにはどうすればよいですか?
items = Item.objects.filter(Q(var__icontains=term) | Q(another_var__icontains=term))
res = []
for item in items:
res.append({
'val': item.(var or another_var?),
})
フィルターで取得した var 値を選択して、ループに値を追加するにはどうすればよいですか?
items = Item.objects.filter(Q(var__icontains=term) | Q(another_var__icontains=term))
res = []
for item in items:
res.append({
'val': item.(var or another_var?),
})
var
クエリセットでどの変数が一致するかanohter_var
を手動で確認する必要があることを残念に思います。
items = Item.objects.filter(Q(var__icontains=term) |
Q(another_var__icontains=term))
uterm = term.upper()
res = []
for item in items:
value = item.var if uterm in item.var.upper() else item.another_var
res.append({'val': value})
ローカルで確認するか、2 つの異なるクエリを実行してください。最初のオプション:
items = Item.objects.filter(Q(var__icontains=term) | Q(another_var__icontains=term))
res = []
for item in items:
if term.lower() in item.var.lower():
v = item.var
else:
v = item.another_var
res.append({
'val': v,
})
2 番目のオプションは、2 つのクエリ (2 つのフィルター呼び出し) を実行するだけです。