2
""で分割された1つの文字列にいくつかのキーワードがあります。私は列名のテーブルも持っています。 1つのキーワードの名前に含まれるすべてのレコードを取得するにはどうすればよいですか?containsとキーワードを含むDjangoクエリ
例:
キーワード=
「テストはエル分割」をそして私は、レコード「test2は」「要素」と「ショーtest2は」と「要素を」「クエリが返す必要があります」を持っている場合。
""で分割された1つの文字列にいくつかのキーワードがあります。私は列名のテーブルも持っています。 1つのキーワードの名前に含まれるすべてのレコードを取得するにはどうすればよいですか?containsとキーワードを含むDjangoクエリ
例:
キーワード=
「テストはエル分割」をそして私は、レコード「test2は」「要素」と「ショーtest2は」と「要素を」「クエリが返す必要があります」を持っている場合。
Table.objects.filter(name__in=keyword.split(' '))
OK、間違っていました。私はこれが1つのライナーまたは単一のSQLクエリで達成できるかどうかはわかりません。より多くの明白な方法は、このようなものですが、これが最適であるかどうかは、わかりません。
result = []
for keyword in keywords.split(' '):
result += list(Table.objects.filter(name__icontains=keyword))
[OK]を、これは単一のクエリで行うことができますが、私は正確にどのように確認していません。これを試すことができます:
final_pred = Q()
for pred in [Q(name__icontains=keyword) for keyword in keywords.split(' ')]:
final_pred = final_pred | pred;
Table.objects.filter(final_pre)
これはtest2を返しません。それは間違った答えです – szaman
ええ、それは本当です。 – gruszczy
これはいかがですか? – gruszczy