使用Django和Python的搜索表单

1 投票
1 回答
4187 浏览
提问于 2025-04-16 07:46

我刚开始用 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>

撰写回答