我正在学习Django建立一个带搜索引擎的网站。我只找到了全文搜索的文档。但是,我正在尝试实施基于关键字/标签的搜索,我将其添加到每个项目中。
例如,如果用户搜索肉类,则会弹出所有肉类产品,如鸡肉,牛肉,火腿。项目也可以有多个关键字。
那么我该如何实现这样的东西;有没有我可以使用的工具或应用程序?我也想要一个文档的链接。
答案 0 :(得分:0)
过滤可以这样完成:
.filter(tags__icontains=data)
__icontains
就是你想要的东西
这是一个简单的教程:)
首先让我们创建你在其中输入搜索关键字的html输入。
<form action="/search/">
<label for="search"></label>
<input type="text" name="q" id="search">
<button type="submit">Search!</button>
</form>
现在这会将用户数据发送到将处理它的视图,所以让我们创建它
首先是网址:
url(r'^search/', views.search)
查看:
def search(request):
data = request.GET.get('q')
return render(request, 'path-to-template-that-will-show-the-search-result', {'objects': YourModel.objects.filter(YourTagField__icontains=data)})
结果模板应该是这样的:
<ul>
{% for obj in objects %}
<li>{{obj.some_title_field}}</li>
{% endfor %}
</ul>
希望它可以帮助你:)