使用Django和Python的搜索表单
我刚开始用 Django 和 Python 做一个网站,我想实现一个搜索表单,这样我就可以在我的数据库对象中进行搜索。我希望的是,当我输入一个字母,比如 S
时,搜索框能显示出所有以字母 S
开头的对象,像这个网站下面的标签字段那样列出来。
有没有人能给我一些好的想法,怎么用 Django 来实现这个功能?
1 个回答
6
如果你想在Django中实现一个不错的搜索功能,我建议你看看 djapian
这个工具。不过,针对你现在的需求,我推荐使用 ISTARTSWITH
这个参数来进行查询。可以参考下面的内容:
views.py
def search(req):
if req.GET:
search_term = req.GET['term']
results = ModelToSearch.objects.filter(field__istartswith=search_term)
return render_to_response('search.html', {'results': results})
return render_to_response('search.html', {})
search.html
<html>
<body>
<form>
<input name='S'>
</form>
{% if results %}
Found the following items:
<ol>
{% for result in results %}
<li>{{result}}</li>
{% endfor %}
</ol>
{% endif %}
</body>
</html>