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

Django处理HTMX请求时返回空内容的规范及替代方案

Django处理HTMX请求:空内容返回的规范与优化方案

关于返回空模板的通用规范

HTMX本身没有强制要求返回空模板的固定规范,但行业内通常遵循两种思路:

  • 若需要清空目标元素,返回空白HTML片段是可行的常规做法;
  • 更贴合HTTP语义的方式是返回特定状态码(如204 No Content),利用HTMX内置的行为自动处理元素清空。

替代空白HTML文件的更优实现方式

你当前用empty.html返回空白内容的方式可行,但有两种更简洁的方案:

1. 直接返回空字符串的HttpResponse

无需创建额外的空白模板,直接返回空响应即可:

from django.http import HttpResponse

def get_suites(request):
    address = request.GET.get('address')
    rental_units = Rental_Unit.objects.filter(address__address=address).order_by('suite')
    if len(rental_units) > 1:
        return render(request, 'suite_list.html', {'rental_units': rental_units})
    else:
        return HttpResponse("")

2. 返回204 No Content状态码(推荐)

HTMX内置了对204 No Content状态码的处理逻辑:当收到该响应时,会自动清空hx-target指定的元素内容,完全符合HTTP语义,无需返回任何HTML内容:

from django.http import HttpResponseNoContent

def get_suites(request):
    address = request.GET.get('address')
    rental_units = Rental_Unit.objects.filter(address__address=address).order_by('suite')
    if len(rental_units) > 1:
        return render(request, 'suite_list.html', {'rental_units': rental_units})
    else:
        return HttpResponseNoContent()

补充说明

如果后续需要在空状态下展示提示信息(比如“暂无可用套房”),直接返回对应的HTML片段即可,无需依赖空白模板,例如:

else:
    return HttpResponse("<p>暂无可用套房</p>")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 15:10:10