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

HTMX与Django WebSocket集成问题:响应无法渲染至目标div

解决HTMX WebSocket响应无法渲染到目标div的问题

问题分析与修复步骤

  • 修复HTML语法错误
    你的代码中存在闭合标签错误:<div class="col-md-12 mt-4"> 的闭合标签写成了 </div,缺少末尾的 >。该错误会破坏DOM结构,导致HTMX无法正确识别目标元素。

  • 使用ws-target指定WebSocket响应目标
    HTMX的WebSocket扩展使用ws-target属性(而非普通请求的hx-target)来设置默认的消息渲染目标。需要在带有ws-connect的元素上添加该属性。

  • 移除冗余的hx-trigger="load"
    ws-connect属性会自动在元素加载时建立WebSocket连接,无需额外的hx-trigger="load"——该属性属于普通HTMX请求的触发方式,不适用于WebSocket场景。

修正后的代码

{% block content %}

<main hx-ext="ws" ws-connect="/ws/attempt/{{ id }}/" ws-target="#question_response">
  <div class="container-fluid">

    <div class="row">
      <div class="col-md-12 mt-4">

            <div id="question_response"></div>

      </div>
    </div>

  </div>
</main>

{% endblock %}

额外说明

如果需要针对不同WebSocket消息指定不同渲染目标,可以在服务器返回的HTML响应中使用hx-swap-oob属性,示例如下:

<div id="question_response" hx-swap-oob="innerHTML">
  <!-- 新的问题内容 -->
</div>

这种方式会直接替换页面上对应ID的元素内容,无需依赖全局的ws-target配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 22:35:19