You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Django搜索框输入值传递到搜索结果页展示

你没法在搜索结果页拿到查询关键词,核心原因是没有把关键词变量传到模板渲染的上下文里,按下面步骤修改即可:

第一步:修改views.py,把查询关键词加入上下文

你原来的代码还有重复过滤的冗余,优化后的完整代码如下:

def search_qa_results(request):
    # 加默认空字符串避免获取不到参数时报错
    query = request.GET.get('q', '')
    qa_list = QA.objects.all()
    if query:
        # 只有存在查询关键词时才执行过滤
        lookups = Q(title__icontains=query)
        qa_list = QA.objects.filter(lookups)
    context = {
        'qa_list': qa_list,
        # 把查询关键词加入上下文,模板才能读取到这个变量
        'query': query
    }
    return render(request, 'search/search_qa.html', context)

第二步:修改搜索结果模板的占位位

把search_results.html里的{{WHAT TO PUT HERE?}}直接替换成{{ query }}即可:

<div class="d-flex justify-content-start"> Search results for my question: {{ query }}</div>

额外修复前端搜索按钮的异常

你当前的搜索图标用的是a标签,用户点击这个图标会直接跳转搜索页,不会带上输入框的查询参数,只有按回车才能正常搜索,建议替换成submit类型按钮:
把index.html里的这段代码

<a href="{% url 'search_qa_results' %}" class="search_icon"><i class="fas fa-search"></i></a>

替换为

<button type="submit" class="search_icon" style="border:none;background:none;"><i class="fas fa-search"></i></button>

内容的提问来源于stack exchange,提问作者Adrian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 20:54:04