基于 HTMX 的表单动态验证与部分渲染
告别全表刷新,利用 HTMX 属性在 Django 模板中实现字段级即时验证。 · 难度:入门 · +10XP
基于 HTMX 的表单动态验证与部分渲染
传统 Ajax 教程需写大量 JavaScript。本课结合 Django Form 的 is_valid 方法以及 HTMX 的 hx-trigger、hx-target 实现无 JS 前端验证。当用户离开输入框时,Django 视图返回验证错误的 HTML 片段,HTMX 自动替换对应位置。你还会学到如何复用 form 的非字段错误,并利用 hx-swap-oob 更新多个区域。
# views.py
from django.http import HttpResponse
from django.template import loader
def validate_username(request):
from .forms import UserForm
form = UserForm({'username': request.GET.get('username', '')})
if form.is_valid():
return HttpResponse('✓ 可用')
else:
return HttpResponse(
f'{form.errors["username"][0]}'
)
# template