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

Django调用HTMX请求视图报错:'WSGIRequest'对象无'htmx'属性

解决Django中'WSGIRequest' object has no attribute 'htmx'错误

这个错误的核心原因是:Django原生的WSGIRequest对象并没有htmx属性,你需要通过django-htmx扩展来让Django识别HTMX请求并给request添加这个属性。具体解决步骤如下:

  • 安装django-htmx包
    在终端执行安装命令:

    pip install django-htmx
    
  • 配置Django项目

    1. 打开项目根目录的settings.py,在INSTALLED_APPS列表中添加'htmx':
      INSTALLED_APPS = [
          # 其他已安装应用
          'htmx',
      ]
      
    2. 同样在settings.py的MIDDLEWARE列表中添加'htmx.middleware.HtmxMiddleware'(建议放在django.middleware.common.CommonMiddleware之后):
      MIDDLEWARE = [
          # 其他中间件
          'django.middleware.common.CommonMiddleware',
          'htmx.middleware.HtmxMiddleware',
          # 其他中间件
      ]
      
  • 重启Django开发服务器
    配置完成后,重启你的Django服务器,此时request.htmx就能正常使用了。

额外优化建议

你的HTML代码里用了hx-post但同时在URL里带了GET参数slug,而视图中是通过request.GET.get('slug')获取参数,这里存在请求方法不匹配的问题:

  • 要么把HTML中的hx-post改成hx-get,保持和视图中GET参数的逻辑一致;
  • 要么把视图中的request.GET.get('slug')改成request.POST.get('slug'),同时调整HTML传递参数的方式(比如用hx-vars传递POST数据)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 16:46:37