from django.http import HttpResponse from django.template.loader import render_to_string def htmx_response(request, template: str, context: dict | None = None, status: int = 200) -> HttpResponse: html = render_to_string(template, context or {}, request=request) return HttpResponse(html, status=status) def htmx_trigger(response: HttpResponse, event: str, detail: dict | None = None) -> HttpResponse: import json payload = response.headers.get("HX-Trigger") triggers = json.loads(payload) if payload else {} triggers[event] = detail or {} response.headers["HX-Trigger"] = json.dumps(triggers) return response def htmx_redirect(url: str) -> HttpResponse: response = HttpResponse(status=204) response.headers["HX-Redirect"] = url return response