django のこの SQL ステートメントに相当するものは何ですか?
SELECT * FROM table_name WHERE string LIKE pattern;
これをdjangoで実装するにはどうすればよいですか? 私は試した
result = table.objects.filter( pattern in string )
しかし、それはうまくいきませんでした。これを実装するにはどうすればよいですか?
django のこの SQL ステートメントに相当するものは何ですか?
SELECT * FROM table_name WHERE string LIKE pattern;
これをdjangoで実装するにはどうすればよいですか? 私は試した
result = table.objects.filter( pattern in string )
しかし、それはうまくいきませんでした。これを実装するにはどうすればよいですか?
__contains
or __icontains
(大文字と小文字を区別しない) :
result = table.objects.filter(string__contains='pattern')
同等の SQL は次のとおりです。
SELECT ... WHERE string LIKE '%pattern%';
falsetru によって言及された contains および icontains のようなクエリを作成しますSELECT ... WHERE headline LIKE '%pattern%
それらに加えて、同様の動作をする次のものが必要になる場合があります: startswith、istartswith、endswith、iendswith
作る
SELECT ... WHERE headline LIKE 'pattern%
また
SELECT ... WHERE headline LIKE '%pattern
result = table.objects.filter(string__icontains='pattern')
フィールド内の文字列の大文字と小文字を区別しない検索。
完全な例: 文字列フィールド名 file_name を持つ DjangTable というテーブルがあり、mysql の文字列 file_name のスペースに一致するクエリに相当する Django フィルターを作成するとします。
SELECT * FROM DjangTable WHERE file_name LIKE '% %'
class DjangTable(UTModel):
...
file_name = models.CharField(max_length=255, null=False)
...
Pythonを使用するDjangoでは、次のようになります。
pattern = ' ' # same as mysql LIKE '% %'
DjangTable.objects.filter(file_name__contains=pattern)