web-dev-qa-db-ja.com

DJANGOの同じクエリで「含む」と「iexact」を使用します

Djangoの同じクエリでcontainsおよびiexactフィールドルックアップを使用するにはどうすればよいですか?

そのように..

casas = Casa.objects.filter(nome_fantasia__contains__iexact='green')
25
rayashi

大文字と小文字を区別しないcontainsが必要な場合は、 icontains を使用します。

casas = Casa.objects.filter(nome_fantasia__icontains = 'green')

に変換されます

... WHERE nome_fantasia ILIKE '%green%'

sQLで。

53
agf

正直なところ、その必要はありません。 2つの結果セットが重複しています。 ANDを使用する場合は、最も制限の厳しい__iexactを使用してください。 ORが必要な場合は__containsを使用してください

あなたの質問に答えるために、あなたは以下のようなことをすることができます(これはANDであることに注意してください)

casas = Casa.objects.filter(nome_fantasia__contains='green', nome_fantasia__iexact='green')
8