[英]How to make multiple string queries on DJANGO 2.2
我想進行查詢,以在字段名中搜索包含所有單詞的所有行,這些行包含snames
var中的某個單詞:
snames='john bush george robert'
我用以下代碼在SQL上執行此操作:
SELECT * FROM names.peoples
WHERE `name` LIKE'%john%bush%george%robert%';
在django中:
snames='john bush george robert'
p = peoples.objects.all().filter(name__icontains=snames)
有可能在單個查詢中嗎?
您需要在列表中添加名稱,然后使用Q可以對name
字段的值進行OR
過濾:
sname = ['john', 'bush', 'george', 'robert']
condition = reduce(operator.or_, [Q(name__icontains=name) for name in sname])
p = Peoples.objects.filter(condition).distinct()
可能您不清楚條件行,因此下面是條件的示例輸出:
Q(name__icontains='john') OR Q(name__icontains='bush') OR Q(name__icontains='george') OR Q(name__icontains='rober')
請注意,當您要查詢模型的名稱為poeples.objects.filter
,請在代碼中使用poeples.objects.filter
希望它是次要的,正確的是Poeples.objects.filter
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.