我有这样的城市:

In [99]: City.objects.filter(title='Hamilton')
Out[99]: <QuerySet [<City: hamilton>]

我有几句话是这样的:

语句=‘3101A 1280 Main Street West Hamilton on L8S 4K1’

我怎么能找到有这个句子标题的城市呢?

注:我用过这个方法,但不是真的.因为这个查询对于django中的list not string很有用:

In [100]: City.objects.filter(slug__in=sentence)
Out[100]: <QuerySet []>

推荐答案

您可以使用Contains查找用于case-insensitive substring搜索:

from django.db.models import F, Value
from django.db.models.lookups import Contains

City.objects.filter(Contains(Value(sentence), F('title')))

虽然使用__icontains lookup [Django-doc]生成文本结果,但这通常仍然是一种糟糕的搜索方式,因为它只会提取具有确切字符串的条目.通常使用ElasticSolr的解决方案,或者可以使用PostgreSQL__search lookup [Django-doc].

Django相关问答推荐

Django逆转ForeignKey返回无

把Django测试和testcafe结合起来?

Django:无法分配必须是实例(&Q;X),不想获取对象(&Q;)

如何在Django中显示文件大小

如何在Django模板中为无效词典查找打开异常?

从url参数过滤的Django日期范围返回空查询集

Django rest framework, AttributeError: 'str' object has no attribute 'data' 无法使用表单上传图片

如何将数据库中的 None 序列化为空对象?

Django Query 在基于通用类的 UpdateView 中重复了 2 次

超级用户在基于类的视图中进行身份验证

Django:在模板中呈现表单字段时添加 CSS 类

在 django/python 上访问请求标头

根据模型属性获取django对象id

获取 Django 中的缓存键列表

如何在Django中获取一个组的所有用户?

Heroku - 在 Django 应用程序中处理静态文件

如何将 django csrf 令牌直接嵌入 HTML?

如何动态访问 Django 模型字段详细名称?

BASE DIR 的绝对路径是什么?

它是如何工作的,Django INSTALLED_APPS 的命名约定?