【发布时间】:2016-10-13 09:42:31
【问题描述】:
说,我有一个带有文本字段的模型:
class SomeModel
keyword=models.CharField(null=True, max_length=255)
现在,我知道如何检查参数字符串(让我们称变量“querystring”是否包含在字段关键字中:
results = SomeModel.objects.filter(keyword_icontains=querystring).all()
我在django docs中找到的
问题,如何过滤字段值包含在查询字符串变量中的对象?
抱歉,如果我的问题令人困惑......也许一个例子会澄清...... 在 django 文档中,如果我的关键字字段包含例如“python-django”,那么对于包含“django”的查询字符串,我可以使用
提取包含该字段的对象results=SomeModel.objects.filter(keyword_icontains=querystring).all()
or results=SomeModel.objets.filter(keyword_icontains='django').all()
但是说,我想提取关键字字段包含在查询字符串中的所有行/对象?例如,如果查询字符串包含“在 django 中,我如何创建过滤器”?然后我希望结果包含其关键字字段具有值 'django'、'filter' 等的所有对象......
【问题讨论】:
-
查询字符串包含该字段?与包含模型字段名称的查询字符串的值一样?
-
@RajeshYogeshwar,如在查询字符串的值中包含模型字段的值...
-
您当前的示例不正确,除非
querystring实际上是字符串"querystring"。然后 SQL 等价物是SELECT ... WHERE keyword IKE '%querystring%'。这可能会导致您对您的问题是什么以及可能的答案感到困惑。 -
@RVC 这就是我问的。您正在尝试对字段名称本身进行 LIKE 查询。我可以确切地知道相同的目的,以便更好地了解您要实现的目标吗?
-
您正在匹配输入句子中的单词,afaict。但是您必须具体说明您的问题是否真的如此。标点符号或空格呢?包括还是排除那些?诸如“在 StackOverflow 的问题中搜索”之类的所有格或“不是”之类的缩写词呢?