过滤价值未满的模型

时间:2018-03-23 11:49:41

标签: python django django-models

我有一个填充db数据的表。现在我正在创建搜索表单。哪个搜索我想要的所有内容,但前提是我给它完全匹配db中匹配值的字符串。例如,我在搜索中键入审核,它将搜索:

qs = Model.objects.filter(status=review)

然后我返回带响应的数据,我的Vue页面按照我想要的方式呈现它。 我是选择字段,审查,注册,取消等。但是用户可以将它们视为审阅,注册等。因此它们不匹配,用户将键入Reviewing,这将返回空qs。此外,我想搜索用户类型' viewi'后查找结果。有没有办法通过django服务器端进行,因为我无法在文档中找到信息

2 个答案:

答案 0 :(得分:0)

我刚刚找到了解决方案。您需要将__icontains添加到过滤器中的ur字段的末尾。在我的情况下,它看起来像:

qs = Model.objects.filter(status__icontains=query)

这将是sql代码

WHERE status ILIKE %query%

答案 1 :(得分:0)

我完全不了解你的问题,我猜你应该看的是Django的Q(),你可以用查询集进行复杂的数据库查询。

检查此页面。 https://docs.djangoproject.com/en/1.7/topics/db/queries/#complex-lookups-with-q

一个简单的例子是这样的: 你想要的是:

select * from Model where status like '%view%

返回所有审核或查看或审核为状态值的行。

使用Q()可以像

一样
Model.objects.get(status__icontains='view')