如何在Django中匹配字符串与数据库字段?

Pol*_*Pol 1 python django django-models

我有一个数据库,其name列有数据

'Very big News'
'News'
'something else'
'New Nes'
'Fresh News'
'Something else'
Run Code Online (Sandbox Code Playgroud)

现在给出一串单词,如何找到name字段中是否包含给定字符串中的任何单词?

例如:

我有一个字符串'super very news'.我需要在我的数据库中查看我是否有任何记录,使该name字段包含'super''very''news''super very''very news'.

Sam*_*lan 6

根据评论更新.请在此处查看查询集文档.

your_search_query = 'super very news'

qset = Q()
for term in your_search_query.split():
    qset |= Q(name__contains=term)

matching_results = YourModel.objects.filter(qset)
Run Code Online (Sandbox Code Playgroud)

这创造了相当于:

matching_result = YourModel.objects.filter(Q(name__contains='super') |
                                           Q(name__contains='very') |   
                                           Q(name__contains='news'))
Run Code Online (Sandbox Code Playgroud)

它在单个查询中生成(大致)以下SQL:

 select * from your_model where name like '%super%' or name like '%very%' or name like '%news%'
Run Code Online (Sandbox Code Playgroud)