zen*_*enk 3 django django-models
我有一个模型,我想用搜索词过滤,这通常是一个名称.然而,在我的数据库first_name和last_name是两个不同的领域.
例如
search_term = 'Will Sm'
db_persons 记录: first_name = 'Will', last_name = 'Smith'
搜索词将能够检索此记录.
我怎样才能做到这一点?
db_persons.objects.filter(__?__)
更新:
寻找一种连接字段和查询连接结果而无需原始sql的方法
如果你想搜索第一个和姓氏,你可以简单地使用:
db_persons.objects.filter(first_name='Will', last_name='Smith')
Run Code Online (Sandbox Code Playgroud)
如果要在first_name或last_name中搜索,请使用Q对象:
from django.db.models.query_utils import Q
db_persons.objects.filter(Q(first_name='will') | Q(last_name='will'))
Run Code Online (Sandbox Code Playgroud)
根据评论更新:一个简单的解决方案可能如下所示:
search_string = 'will smith'
query_list = search_string.split()
db_persons.objects.filter(Q(first_name__in=query_list) | Q(last_name__in=query_list))
Run Code Online (Sandbox Code Playgroud)
如果您使用mysql,则可以使用搜索.
| 归档时间: |
|
| 查看次数: |
2315 次 |
| 最近记录: |