Apa padanan pernyataan SQL ini di django?
SELECT * FROM table_name WHERE string LIKE pattern;
Bagaimana cara mengimplementasikan ini di django? Saya mencoba
result = table.objects.filter( pattern in string )
Tapi itu tidak berhasil. Bagaimana cara menerapkan ini?
python
sql
django
django-models
django-queryset
Aswin Murugesh
sumber
sumber
result = table.objects.filter(string__icontains='pattern')
%a%b%
.result = table.objects.filter(string__contains='a').filter(string__contains='b')
ba
mana yangLIKE %a%b%
tidak.berisi dan isi yang disebutkan oleh falsetru membuat kueri seperti
SELECT ... WHERE headline LIKE '%pattern%
Bersamaan dengan mereka, Anda mungkin memerlukan yang berikut ini dengan perilaku serupa: startswith , istartswith , endswith , iendswith
pembuatan
SELECT ... WHERE headline LIKE 'pattern%
atau
SELECT ... WHERE headline LIKE '%pattern
sumber
Pencarian tidak peka huruf besar / kecil untuk string dalam bidang.
sumber
Untuk menjaga urutan kata-kata seperti dalam pernyataan sql LIKE '% pattern%' saya menggunakan iregex, misalnya:
metode string tidak dapat diubah sehingga variabel pola Anda tidak akan berubah dan dengan. * Anda akan mencari 0 atau lebih kemunculan karakter apa pun kecuali garis putus.
Dengan menggunakan yang berikut ini untuk mengulangi kata-kata pola:
urutan kata-kata dalam pola Anda tidak akan dipertahankan, untuk beberapa orang yang bisa bekerja tetapi dalam kasus mencoba meniru pernyataan seperti sql saya akan menggunakan opsi pertama.
sumber
Ini bisa dilakukan dengan pencarian kustom Django . Saya telah membuat pencarian menjadi aplikasi pencarian mirip-Django . Setelah menginstalnya,
__like
pencarian dengan wildcard%
dan_
akan diaktifkan.Semua kode yang diperlukan dalam aplikasi ini adalah:
sumber