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

Django+HTMX实时搜索问题:清空搜索词后页面重复渲染

Django+HTMX实时搜索清空时重复渲染问题解决

问题根源

清空搜索框时,视图返回了完整的pkes/search.html页面,HTMX会将该页面内容替换到#search-results容器中,导致页面嵌套重复——原页面的#search-results容器内被插入了另一个完整的search.html,进而出现重复渲染异常。

解决方案

修改视图逻辑,无论是否存在搜索关键词,统一返回仅负责渲染搜索结果的search_results.html模板,而非完整页面:

修改后的view.py代码

class SearchView(View):
    @staticmethod
    def get(request):
        search_term = request.GET.get('search', None)
        if search_term:
            roads = Road.objects.filter(name__contains=search_term).all()[:100]
        else:
            roads = []
        # 统一返回搜索结果模板,避免嵌套完整页面
        return render(request=request,
                      template_name='search_results.html',
                      context={
                          'roads': roads,
                      })

说明

  • 当搜索词为空时,roads列表为空,search_results.html中的循环不会生成任何内容,正好实现清空搜索结果的效果。
  • 页面初始加载时,search.html通过{% include "search_results.html" %}展示空结果,符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 14:16:45